TPTP Problem File: DAT221^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT221^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Tllist 340
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : tllist__340.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v7.1.0
% Syntax   : Number of formulae    :  331 ( 108 unt;  61 typ;   0 def)
%            Number of atoms       : 1165 ( 265 equ;   6 cnn)
%            Maximal formula atoms :   20 (   4 avg)
%            Number of connectives : 5970 (  19   ~;   4   |;  61   &;5586   @)
%                                         (   0 <=>; 300  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   26 (  12 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  : 2042 (2042   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   61 (  57 usr;   3 con; 0-10 aty)
%            Number of variables   : 2038 ( 471   ^;1424   !;  39   ?;2038   :)
%                                         ( 104  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:51:15.680
%------------------------------------------------------------------------------
%----Could-be-implicit typings (9)
thf(ty_t_TLList__Mirabelle__qhjoikztpd_Otllist,type,
    tLList446370796tllist: $tType > $tType > $tType ).

thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_d,type,
    d: $tType ).

thf(ty_tf_c,type,
    c: $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (52)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
    comple187826305attice: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_BNF__Def_OfstOp,type,
    bNF_fstOp: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( B > C > $o ) > ( product_prod @ A @ C ) > ( product_prod @ A @ B ) ) ).

thf(sy_c_BNF__Def_Orel__fun,type,
    bNF_rel_fun: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( A > B ) > ( C > D ) > $o ) ).

thf(sy_c_BNF__Def_OsndOp,type,
    bNF_sndOp: 
      !>[C: $tType,A: $tType,B: $tType] : ( ( C > A > $o ) > ( A > B > $o ) > ( product_prod @ C @ B ) > ( product_prod @ A @ B ) ) ).

thf(sy_c_BNF__Greatest__Fixpoint_Oimage2p,type,
    bNF_Greatest_image2p: 
      !>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A ) > ( D > B ) > ( C > D > $o ) > A > B > $o ) ).

thf(sy_c_Basic__BNFs_Opred__fun,type,
    basic_pred_fun: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( A > B ) > $o ) ).

thf(sy_c_Basic__BNFs_Opred__prod,type,
    basic_pred_prod: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( product_prod @ A @ B ) > $o ) ).

thf(sy_c_Basic__BNFs_Orel__prod,type,
    basic_rel_prod: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( A > B > $o ) > ( C > D > $o ) > ( product_prod @ A @ C ) > ( product_prod @ B @ D ) > $o ) ).

thf(sy_c_Coinductive__List_Oiterates,type,
    coinductive_iterates: 
      !>[A: $tType] : ( ( A > A ) > A > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfinite,type,
    coinductive_lfinite: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Ocase__llist,type,
    coindu1381640503_llist: 
      !>[B: $tType,A: $tType] : ( B > ( A > ( coinductive_llist @ A ) > B ) > ( coinductive_llist @ A ) > B ) ).

thf(sy_c_Coinductive__List_Ollist_Ocorec__llist,type,
    coindu1259883913_llist: 
      !>[C: $tType,A: $tType] : ( ( C > $o ) > ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_Ollist__all2,type,
    coindu1486289336t_all2: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Opred__llist,type,
    coindu543516966_llist: 
      !>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ounfold__llist,type,
    coindu1441602521_llist: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > B ) > ( A > A ) > A > ( coinductive_llist @ B ) ) ).

thf(sy_c_Complete__Partial__Order_Omonotone,type,
    comple1396247847notone: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( B > B > $o ) > ( A > B ) > $o ) ).

thf(sy_c_Fun_Omap__fun,type,
    map_fun: 
      !>[C: $tType,A: $tType,B: $tType,D: $tType] : ( ( C > A ) > ( B > D ) > ( A > B ) > C > D ) ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Lifting_Orel__pred__comp,type,
    rel_pred_comp: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( B > $o ) > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oorder__class_Omono,type,
    order_mono: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > $o ) ).

thf(sy_c_Partial__Function_Ofun__ord,type,
    partial_fun_ord: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( C > A ) > ( C > B ) > $o ) ).

thf(sy_c_Partial__Function_Opartial__function__definitions,type,
    partia17684980itions: 
      !>[A: $tType] : ( ( A > A > $o ) > ( ( set @ A ) > A ) > $o ) ).

thf(sy_c_Product__Type_Ocurry,type,
    product_curry: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).

thf(sy_c_Product__Type_Ointernal__case__prod,type,
    produc2004651681e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
    product_case_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Quotient_OBex1__rel,type,
    bex1_rel: 
      !>[A: $tType] : ( ( A > A > $o ) > ( A > $o ) > $o ) ).

thf(sy_c_Quotient_OQuotient3,type,
    quotient3: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( A > B ) > ( B > A ) > $o ) ).

thf(sy_c_Relation_ODomainp,type,
    domainp: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > A > $o ) ).

thf(sy_c_Relation_Oreflp,type,
    reflp: 
      !>[A: $tType] : ( ( A > A > $o ) > $o ) ).

thf(sy_c_Relation_Orelcompp,type,
    relcompp: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( B > C > $o ) > A > C > $o ) ).

thf(sy_c_Set_OBex,type,
    bex: 
      !>[A: $tType] : ( ( set @ A ) > ( A > $o ) > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ocr__tllist,type,
    tLList47617868tllist: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Opcr__tllist,type,
    tLList1832236142tllist: 
      !>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A > $o ) > ( D > B > $o ) > ( product_prod @ ( coinductive_llist @ C ) @ D ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocase__tllist,type,
    tLList200813139tllist: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > ( tLList446370796tllist @ A @ B ) > C ) > ( tLList446370796tllist @ A @ B ) > C ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocorec__tllist,type,
    tLList1614408749tllist: 
      !>[E: $tType,B: $tType,A: $tType] : ( ( E > $o ) > ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Opred__tllist,type,
    tLList11265572tllist: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otllist__all2,type,
    tLList1380991092t_all2: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist__of__llist,type,
    tLList1672613558_llist: 
      !>[B: $tType,A: $tType] : ( B > ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_Transfer_Obi__total,type,
    bi_total: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).

thf(sy_c_Transfer_Oleft__total,type,
    left_total: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).

thf(sy_c_Transfer_Orev__implies,type,
    rev_implies: $o > $o > $o ).

thf(sy_c_Transfer_Oright__total,type,
    right_total: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).

thf(sy_c_Transfer_Otransfer__bforall,type,
    transfer_bforall: 
      !>[A: $tType] : ( ( A > $o ) > ( A > $o ) > $o ) ).

thf(sy_c_Transfer_Otransfer__forall,type,
    transfer_forall: 
      !>[A: $tType] : ( ( A > $o ) > $o ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

%----Relevant facts (256)
thf(fact_0_tllist_Orel__eq,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1380991092t_all2 @ A @ A @ B @ B
        @ ^ [Y: A,Z: A] : Y = Z
        @ ^ [Y: B,Z: B] : Y = Z )
      = ( ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : Y = Z ) ) ).

% tllist.rel_eq
thf(fact_1_tllist_Orel__refl,axiom,
    ! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: tLList446370796tllist @ C @ D] :
      ( ! [X2: C] : ( R1a @ X2 @ X2 )
     => ( ! [X2: D] : ( R2a @ X2 @ X2 )
       => ( tLList1380991092t_all2 @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).

% tllist.rel_refl
thf(fact_2_split__part,axiom,
    ! [B: $tType,A: $tType,P: $o,Q: A > B > $o] :
      ( ( product_case_prod @ A @ B @ $o
        @ ^ [A2: A,B2: B] :
            ( P
            & ( Q @ A2 @ B2 ) ) )
      = ( ^ [Ab: product_prod @ A @ B] :
            ( P
            & ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).

% split_part
thf(fact_3_tllist_Orel__eq__transfer,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o )
      @ ( tLList1832236142tllist @ A @ A @ B @ B
        @ ^ [Y: A,Z: A] : Y = Z
        @ ^ [Y: B,Z: B] : Y = Z )
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ $o @ $o
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y: A,Z: A] : Y = Z
          @ ^ [Y: B,Z: B] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A2: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B2: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A2 = B2 ) ) ) ) )
      @ ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : Y = Z ) ).

% tllist.rel_eq_transfer
thf(fact_4_let__rsp,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > B > $o,R2: C > D > $o] :
      ( bNF_rel_fun @ A @ B @ ( ( A > C ) > C ) @ ( ( B > D ) > D ) @ R1 @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ C @ D @ ( bNF_rel_fun @ A @ B @ C @ D @ R1 @ R2 ) @ R2 )
      @ ^ [S: A,F: A > C] : ( F @ S )
      @ ^ [S: B,F: B > D] : ( F @ S ) ) ).

% let_rsp
thf(fact_5_Let__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( bNF_rel_fun @ A @ B @ ( ( A > C ) > C ) @ ( ( B > D ) > D ) @ A3 @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ C @ D @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ B3 )
      @ ^ [S: A,F: A > C] : ( F @ S )
      @ ^ [S: B,F: B > D] : ( F @ S ) ) ).

% Let_transfer
thf(fact_6_fun_Orel__transfer,axiom,
    ! [B: $tType,A: $tType,C: $tType,E: $tType,D: $tType,Sa: A > C > $o,Sc: B > E > $o] :
      ( bNF_rel_fun @ ( A > B > $o ) @ ( C > E > $o ) @ ( ( D > A ) > ( D > B ) > $o ) @ ( ( D > C ) > ( D > E ) > $o )
      @ ( bNF_rel_fun @ A @ C @ ( B > $o ) @ ( E > $o ) @ Sa
        @ ( bNF_rel_fun @ B @ E @ $o @ $o @ Sc
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ ( D > A ) @ ( D > C ) @ ( ( D > B ) > $o ) @ ( ( D > E ) > $o )
        @ ( bNF_rel_fun @ D @ D @ A @ C
          @ ^ [Y: D,Z: D] : Y = Z
          @ Sa )
        @ ( bNF_rel_fun @ ( D > B ) @ ( D > E ) @ $o @ $o
          @ ( bNF_rel_fun @ D @ D @ B @ E
            @ ^ [Y: D,Z: D] : Y = Z
            @ Sc )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ D @ D @ A @ B
        @ ^ [Y: D,Z: D] : Y = Z )
      @ ( bNF_rel_fun @ D @ D @ C @ E
        @ ^ [Y: D,Z: D] : Y = Z ) ) ).

% fun.rel_transfer
thf(fact_7_rel__funI,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D] :
      ( ! [X2: A,Y2: B] :
          ( ( A3 @ X2 @ Y2 )
         => ( B3 @ ( F2 @ X2 ) @ ( G @ Y2 ) ) )
     => ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G ) ) ).

% rel_funI
thf(fact_8_case__prod__app,axiom,
    ! [A: $tType,D: $tType,C: $tType,B: $tType] :
      ( ( product_case_prod @ B @ C @ ( D > A ) )
      = ( ^ [F: B > C > D > A,X3: product_prod @ B @ C,Y3: D] :
            ( product_case_prod @ B @ C @ A
            @ ^ [L: B,R: C] : ( F @ L @ R @ Y3 )
            @ X3 ) ) ) ).

% case_prod_app
thf(fact_9_llist__all2__lfiniteD,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
     => ( ( coinductive_lfinite @ A @ Xs2 )
        = ( coinductive_lfinite @ B @ Ys2 ) ) ) ).

% llist_all2_lfiniteD
thf(fact_10_If__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( bNF_rel_fun @ $o @ $o @ ( A > A > A ) @ ( B > B > B )
      @ ^ [Y: $o,Z: $o] : Y = Z
      @ ( bNF_rel_fun @ A @ B @ ( A > A ) @ ( B > B ) @ A3 @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) )
      @ ( if @ A )
      @ ( if @ B ) ) ).

% If_transfer
thf(fact_11_rel__fun__def__butlast,axiom,
    ! [B: $tType,D: $tType,C: $tType,E: $tType,F3: $tType,A: $tType,R3: A > B > $o,S2: C > E > $o,T: D > F3 > $o,F2: A > C > D,G: B > E > F3] :
      ( ( bNF_rel_fun @ A @ B @ ( C > D ) @ ( E > F3 ) @ R3 @ ( bNF_rel_fun @ C @ E @ D @ F3 @ S2 @ T ) @ F2 @ G )
      = ( ! [X3: A,Y3: B] :
            ( ( R3 @ X3 @ Y3 )
           => ( bNF_rel_fun @ C @ E @ D @ F3 @ S2 @ T @ ( F2 @ X3 ) @ ( G @ Y3 ) ) ) ) ) ).

% rel_fun_def_butlast
thf(fact_12_llist__all2__conj,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B
        @ ^ [X3: A,Y3: B] :
            ( ( P @ X3 @ Y3 )
            & ( Q @ X3 @ Y3 ) )
        @ Xs2
        @ Ys2 )
      = ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
        & ( coindu1486289336t_all2 @ A @ B @ Q @ Xs2 @ Ys2 ) ) ) ).

% llist_all2_conj
thf(fact_13_prod_Odisc__eq__case,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
      ( product_case_prod @ A @ B @ $o
      @ ^ [Uu: A,Uv: B] : $true
      @ Prod ) ).

% prod.disc_eq_case
thf(fact_14_tllist_Orel__transfer,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,H: $tType,F3: $tType,G2: $tType,E: $tType,S1a: A > E > $o,S1c: C > G2 > $o,S2a: B > F3 > $o,S2c: D > H > $o] :
      ( bNF_rel_fun @ ( A > C > $o ) @ ( E > G2 > $o ) @ ( ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( F3 > H > $o ) > ( tLList446370796tllist @ E @ F3 ) > ( tLList446370796tllist @ G2 @ H ) > $o )
      @ ( bNF_rel_fun @ A @ E @ ( C > $o ) @ ( G2 > $o ) @ S1a
        @ ( bNF_rel_fun @ C @ G2 @ $o @ $o @ S1c
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ ( B > D > $o ) @ ( F3 > H > $o ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ E @ F3 ) > ( tLList446370796tllist @ G2 @ H ) > $o )
        @ ( bNF_rel_fun @ B @ F3 @ ( D > $o ) @ ( H > $o ) @ S2a
          @ ( bNF_rel_fun @ D @ H @ $o @ $o @ S2c
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ E @ F3 ) @ ( ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ G2 @ H ) > $o ) @ ( tLList1380991092t_all2 @ A @ E @ B @ F3 @ S1a @ S2a )
          @ ( bNF_rel_fun @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ G2 @ H ) @ $o @ $o @ ( tLList1380991092t_all2 @ C @ G2 @ D @ H @ S1c @ S2c )
            @ ^ [Y: $o,Z: $o] : Y = Z ) ) )
      @ ( tLList1380991092t_all2 @ A @ C @ B @ D )
      @ ( tLList1380991092t_all2 @ E @ G2 @ F3 @ H ) ) ).

% tllist.rel_transfer
thf(fact_15_lfinite__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ A3 )
      @ ^ [Y: $o,Z: $o] : Y = Z
      @ ( coinductive_lfinite @ A )
      @ ( coinductive_lfinite @ B ) ) ).

% lfinite_transfer
thf(fact_16_llist_Orel__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,Sa: A > C > $o,Sc: B > D > $o] :
      ( bNF_rel_fun @ ( A > B > $o ) @ ( C > D > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ C ) > ( coinductive_llist @ D ) > $o )
      @ ( bNF_rel_fun @ A @ C @ ( B > $o ) @ ( D > $o ) @ Sa
        @ ( bNF_rel_fun @ B @ D @ $o @ $o @ Sc
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ C ) @ ( ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ D ) > $o ) @ ( coindu1486289336t_all2 @ A @ C @ Sa )
        @ ( bNF_rel_fun @ ( coinductive_llist @ B ) @ ( coinductive_llist @ D ) @ $o @ $o @ ( coindu1486289336t_all2 @ B @ D @ Sc )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( coindu1486289336t_all2 @ A @ B )
      @ ( coindu1486289336t_all2 @ C @ D ) ) ).

% llist.rel_transfer
thf(fact_17_llist__all2__transfer,axiom,
    ! [A: $tType,B: $tType,R3: A > B > $o] :
      ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) > $o )
      @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ R3
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o ) @ ( coindu1486289336t_all2 @ A @ B @ R3 )
        @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ R3 )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( coindu1486289336t_all2 @ A @ A )
      @ ( coindu1486289336t_all2 @ B @ B ) ) ).

% llist_all2_transfer
thf(fact_18_tllist_Opcr__cr__eq,axiom,
    ! [F3: $tType,E: $tType] :
      ( ( tLList1832236142tllist @ E @ E @ F3 @ F3
        @ ^ [Y: E,Z: E] : Y = Z
        @ ^ [Y: F3,Z: F3] : Y = Z )
      = ( tLList47617868tllist @ E @ F3 ) ) ).

% tllist.pcr_cr_eq
thf(fact_19_fun_Orel__refl,axiom,
    ! [B: $tType,D: $tType,Ra: B > B > $o,X: D > B] :
      ( ! [X2: B] : ( Ra @ X2 @ X2 )
     => ( bNF_rel_fun @ D @ D @ B @ B
        @ ^ [Y: D,Z: D] : Y = Z
        @ Ra
        @ X
        @ X ) ) ).

% fun.rel_refl
thf(fact_20_fun_Orel__eq,axiom,
    ! [A: $tType,D: $tType] :
      ( ( bNF_rel_fun @ D @ D @ A @ A
        @ ^ [Y: D,Z: D] : Y = Z
        @ ^ [Y: A,Z: A] : Y = Z )
      = ( ^ [Y: D > A,Z: D > A] : Y = Z ) ) ).

% fun.rel_eq
thf(fact_21_rel__fun__mono_H,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,Y4: A > B > $o,X4: A > B > $o,A3: C > D > $o,B3: C > D > $o,F2: A > C,G: B > D] :
      ( ! [X2: A,Y2: B] :
          ( ( Y4 @ X2 @ Y2 )
         => ( X4 @ X2 @ Y2 ) )
     => ( ! [X2: C,Y2: D] :
            ( ( A3 @ X2 @ Y2 )
           => ( B3 @ X2 @ Y2 ) )
       => ( ( bNF_rel_fun @ A @ B @ C @ D @ X4 @ A3 @ F2 @ G )
         => ( bNF_rel_fun @ A @ B @ C @ D @ Y4 @ B3 @ F2 @ G ) ) ) ) ).

% rel_fun_mono'
thf(fact_22_rel__fun__mono,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,X4: A > B > $o,A3: C > D > $o,F2: A > C,G: B > D,Y4: A > B > $o,B3: C > D > $o] :
      ( ( bNF_rel_fun @ A @ B @ C @ D @ X4 @ A3 @ F2 @ G )
     => ( ! [X2: A,Y2: B] :
            ( ( Y4 @ X2 @ Y2 )
           => ( X4 @ X2 @ Y2 ) )
       => ( ! [X2: C,Y2: D] :
              ( ( A3 @ X2 @ Y2 )
             => ( B3 @ X2 @ Y2 ) )
         => ( bNF_rel_fun @ A @ B @ C @ D @ Y4 @ B3 @ F2 @ G ) ) ) ) ).

% rel_fun_mono
thf(fact_23_rel__funD2,axiom,
    ! [B: $tType,C: $tType,A: $tType,A3: A > A > $o,B3: B > C > $o,F2: A > B,G: A > C,X: A] :
      ( ( bNF_rel_fun @ A @ A @ B @ C @ A3 @ B3 @ F2 @ G )
     => ( ( A3 @ X @ X )
       => ( B3 @ ( F2 @ X ) @ ( G @ X ) ) ) ) ).

% rel_funD2
thf(fact_24_rel__funE,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
      ( ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G )
     => ( ( A3 @ X @ Y5 )
       => ( B3 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).

% rel_funE
thf(fact_25_rel__funD,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
      ( ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G )
     => ( ( A3 @ X @ Y5 )
       => ( B3 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).

% rel_funD
thf(fact_26_llist_Orel__refl,axiom,
    ! [B: $tType,Ra: B > B > $o,X: coinductive_llist @ B] :
      ( ! [X2: B] : ( Ra @ X2 @ X2 )
     => ( coindu1486289336t_all2 @ B @ B @ Ra @ X @ X ) ) ).

% llist.rel_refl
thf(fact_27_llist_Orel__eq,axiom,
    ! [A: $tType] :
      ( ( coindu1486289336t_all2 @ A @ A
        @ ^ [Y: A,Z: A] : Y = Z )
      = ( ^ [Y: coinductive_llist @ A,Z: coinductive_llist @ A] : Y = Z ) ) ).

% llist.rel_eq
thf(fact_28_llist__all2__mono,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,P2: A > B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
     => ( ! [X2: A,Y2: B] :
            ( ( P @ X2 @ Y2 )
           => ( P2 @ X2 @ Y2 ) )
       => ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 ) ) ) ).

% llist_all2_mono
thf(fact_29_llist__all2__rsp,axiom,
    ! [A: $tType,B: $tType,R3: A > B > $o,S2: A > A > $o,T: B > B > $o,X: coinductive_llist @ A,Y5: coinductive_llist @ B,A4: coinductive_llist @ A,B4: coinductive_llist @ B] :
      ( ! [X2: A,Y2: B] :
          ( ( R3 @ X2 @ Y2 )
         => ! [A5: A,B5: B] :
              ( ( R3 @ A5 @ B5 )
             => ( ( S2 @ X2 @ A5 )
                = ( T @ Y2 @ B5 ) ) ) )
     => ( ( coindu1486289336t_all2 @ A @ B @ R3 @ X @ Y5 )
       => ( ( coindu1486289336t_all2 @ A @ B @ R3 @ A4 @ B4 )
         => ( ( coindu1486289336t_all2 @ A @ A @ S2 @ X @ A4 )
            = ( coindu1486289336t_all2 @ B @ B @ T @ Y5 @ B4 ) ) ) ) ) ).

% llist_all2_rsp
thf(fact_30_prod_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H2: C > D,F2: A > B > C,Prod: product_prod @ A @ B] :
      ( ( H2 @ ( product_case_prod @ A @ B @ C @ F2 @ Prod ) )
      = ( product_case_prod @ A @ B @ D
        @ ^ [X1: A,X22: B] : ( H2 @ ( F2 @ X1 @ X22 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_31_tllist_Oabs__eq__iff,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ ( coinductive_llist @ A ) @ B,Y5: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
          @ X )
        = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
          @ Y5 ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A2: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B2: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A2 = B2 ) ) ) )
        @ X
        @ Y5 ) ) ).

% tllist.abs_eq_iff
thf(fact_32_fun_Opred__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,R3: A > B > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( D > A ) > $o ) @ ( ( D > B ) > $o )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( D > A ) @ ( D > B ) @ $o @ $o
        @ ( bNF_rel_fun @ D @ D @ A @ B
          @ ^ [Y: D,Z: D] : Y = Z
          @ R3 )
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( basic_pred_fun @ D @ A
        @ ^ [Uu: D] : $true )
      @ ( basic_pred_fun @ D @ B
        @ ^ [Uu: D] : $true ) ) ).

% fun.pred_transfer
thf(fact_33_reflp__tllist,axiom,
    ! [B: $tType,A: $tType] :
      ( reflp @ ( product_prod @ ( coinductive_llist @ A ) @ B )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A2: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B2: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A2 = B2 ) ) ) ) ) ) ).

% reflp_tllist
thf(fact_34_internal__case__prod__def,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( produc2004651681e_prod @ A @ B @ C )
      = ( product_case_prod @ A @ B @ C ) ) ).

% internal_case_prod_def
thf(fact_35_tllist_Ocorec__transfer,axiom,
    ! [E: $tType,B: $tType,A: $tType,C: $tType,D: $tType,F3: $tType,S2: E > F3 > $o,R2: B > D > $o,R1: A > C > $o] :
      ( bNF_rel_fun @ ( E > $o ) @ ( F3 > $o ) @ ( ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > D ) > ( F3 > C ) > ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) )
      @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ S2
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( E > B ) @ ( F3 > D ) @ ( ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > C ) > ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ B @ D @ S2 @ R2 )
        @ ( bNF_rel_fun @ ( E > A ) @ ( F3 > C ) @ ( ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ A @ C @ S2 @ R1 )
          @ ( bNF_rel_fun @ ( E > $o ) @ ( F3 > $o ) @ ( ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) )
            @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ S2
              @ ^ [Y: $o,Z: $o] : Y = Z )
            @ ( bNF_rel_fun @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F3 > ( tLList446370796tllist @ C @ D ) ) @ ( ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) @ ( bNF_rel_fun @ ( E > E ) @ ( F3 > F3 ) @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ E @ F3 @ S2 @ S2 ) @ ( bNF_rel_fun @ E @ F3 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ) ) )
      @ ( tLList1614408749tllist @ E @ B @ A )
      @ ( tLList1614408749tllist @ F3 @ D @ C ) ) ).

% tllist.corec_transfer
thf(fact_36_if__rsp,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( bNF_rel_fun @ $o @ $o @ ( A > A > A ) @ ( A > A > A )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( bNF_rel_fun @ A @ A @ ( A > A ) @ ( A > A ) @ R3 @ ( bNF_rel_fun @ A @ A @ A @ A @ R3 @ R3 ) )
        @ ( if @ A )
        @ ( if @ A ) ) ) ).

% if_rsp
thf(fact_37_llist__corec__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
        @ ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z )
          @ ( bNF_rel_fun @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) ) ) ) )
      @ ( coindu1259883913_llist @ A @ C )
      @ ( coindu1259883913_llist @ B @ D ) ) ).

% llist_corec_transfer
thf(fact_38_llist_Ocorec__transfer,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,S2: C > D > $o,R3: A > B > $o] :
      ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > B ) > ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
      @ ( bNF_rel_fun @ C @ D @ $o @ $o @ S2
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( C > A ) @ ( D > B ) @ ( ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ A @ B @ S2 @ R3 )
        @ ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
          @ ( bNF_rel_fun @ C @ D @ $o @ $o @ S2
            @ ^ [Y: $o,Z: $o] : Y = Z )
          @ ( bNF_rel_fun @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S2 @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) @ ( bNF_rel_fun @ ( C > C ) @ ( D > D ) @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ C @ D @ S2 @ S2 ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S2 @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ) ) )
      @ ( coindu1259883913_llist @ C @ A )
      @ ( coindu1259883913_llist @ D @ B ) ) ).

% llist.corec_transfer
thf(fact_39_unfold__llist__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > B ) > B > ( coinductive_llist @ D ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) ) )
      @ ( coindu1441602521_llist @ A @ C )
      @ ( coindu1441602521_llist @ B @ D ) ) ).

% unfold_llist_transfer
thf(fact_40_map__fun__parametric,axiom,
    ! [A: $tType,B: $tType,E: $tType,F3: $tType,H: $tType,G2: $tType,D: $tType,C: $tType,A3: A > C > $o,B3: B > D > $o,C2: E > G2 > $o,D2: F3 > H > $o] : ( bNF_rel_fun @ ( A > B ) @ ( C > D ) @ ( ( E > F3 ) > ( B > E ) > A > F3 ) @ ( ( G2 > H ) > ( D > G2 ) > C > H ) @ ( bNF_rel_fun @ A @ C @ B @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ ( E > F3 ) @ ( G2 > H ) @ ( ( B > E ) > A > F3 ) @ ( ( D > G2 ) > C > H ) @ ( bNF_rel_fun @ E @ G2 @ F3 @ H @ C2 @ D2 ) @ ( bNF_rel_fun @ ( B > E ) @ ( D > G2 ) @ ( A > F3 ) @ ( C > H ) @ ( bNF_rel_fun @ B @ D @ E @ G2 @ B3 @ C2 ) @ ( bNF_rel_fun @ A @ C @ F3 @ H @ A3 @ D2 ) ) ) @ ( map_fun @ A @ B @ E @ F3 ) @ ( map_fun @ C @ D @ G2 @ H ) ) ).

% map_fun_parametric
thf(fact_41_apply__rsp_H,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > B > $o,R2: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
      ( ( bNF_rel_fun @ A @ B @ C @ D @ R1 @ R2 @ F2 @ G )
     => ( ( R1 @ X @ Y5 )
       => ( R2 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).

% apply_rsp'
thf(fact_42_tllist__of__llist__inject,axiom,
    ! [A: $tType,B: $tType,B4: B,Xs2: coinductive_llist @ A,C3: B,Ys2: coinductive_llist @ A] :
      ( ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs2 )
        = ( tLList1672613558_llist @ B @ A @ C3 @ Ys2 ) )
      = ( ( Xs2 = Ys2 )
        & ( ( coinductive_lfinite @ A @ Ys2 )
         => ( B4 = C3 ) ) ) ) ).

% tllist_of_llist_inject
thf(fact_43_let__prs,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C] :
      ( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
     => ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
       => ( ( map_fun @ D @ C @ ( ( C > A ) > A ) @ ( ( D > B ) > B ) @ Rep2 @ ( map_fun @ ( D > B ) @ ( C > A ) @ A @ B @ ( map_fun @ C @ D @ B @ A @ Abs2 @ Rep1 ) @ Abs1 )
            @ ^ [S: C,F: C > A] : ( F @ S ) )
          = ( ^ [S: D,F: D > B] : ( F @ S ) ) ) ) ) ).

% let_prs
thf(fact_44_cond__prs,axiom,
    ! [A: $tType,B: $tType,R3: A > A > $o,Absf: A > B,Repf: B > A,A4: $o,B4: B,C3: B] :
      ( ( quotient3 @ A @ B @ R3 @ Absf @ Repf )
     => ( ( A4
         => ( ( Absf @ ( if @ A @ A4 @ ( Repf @ B4 ) @ ( Repf @ C3 ) ) )
            = B4 ) )
        & ( ~ A4
         => ( ( Absf @ ( if @ A @ A4 @ ( Repf @ B4 ) @ ( Repf @ C3 ) ) )
            = C3 ) ) ) ) ).

% cond_prs
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A4: A,P: A > $o] :
      ( ( member @ A @ A4 @ ( collect @ A @ P ) )
      = ( P @ A4 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X3: A] : ( member @ A @ X3 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X2: A] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F2: A > B,G: A > B] :
      ( ! [X2: A] :
          ( ( F2 @ X2 )
          = ( G @ X2 ) )
     => ( F2 = G ) ) ).

% ext
thf(fact_49_Quotient3I,axiom,
    ! [B: $tType,A: $tType,Abs: B > A,Rep: A > B,R3: B > B > $o] :
      ( ! [A5: A] :
          ( ( Abs @ ( Rep @ A5 ) )
          = A5 )
     => ( ! [A5: A] : ( R3 @ ( Rep @ A5 ) @ ( Rep @ A5 ) )
       => ( ! [R4: B,S3: B] :
              ( ( R3 @ R4 @ S3 )
              = ( ( R3 @ R4 @ R4 )
                & ( R3 @ S3 @ S3 )
                & ( ( Abs @ R4 )
                  = ( Abs @ S3 ) ) ) )
         => ( quotient3 @ B @ A @ R3 @ Abs @ Rep ) ) ) ) ).

% Quotient3I
thf(fact_50_equals__rsp,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,Xa: A,Xb: A,Ya: A,Yb: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ Xa @ Xb )
       => ( ( R3 @ Ya @ Yb )
         => ( ( R3 @ Xa @ Ya )
            = ( R3 @ Xb @ Yb ) ) ) ) ) ).

% equals_rsp
thf(fact_51_lambda__prs,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C,F2: B > D] :
      ( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
     => ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
       => ( ( map_fun @ B @ A @ C @ D @ Rep1 @ Abs2
            @ ^ [X3: A] : ( Rep2 @ ( F2 @ ( Abs1 @ X3 ) ) ) )
          = F2 ) ) ) ).

% lambda_prs
thf(fact_52_pred__funI,axiom,
    ! [B: $tType,A: $tType,A3: A > $o,B3: B > $o,F2: A > B] :
      ( ! [X2: A] :
          ( ( A3 @ X2 )
         => ( B3 @ ( F2 @ X2 ) ) )
     => ( basic_pred_fun @ A @ B @ A3 @ B3 @ F2 ) ) ).

% pred_funI
thf(fact_53_lambda__prs1,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C,F2: B > D] :
      ( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
     => ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
       => ( ( map_fun @ B @ A @ C @ D @ Rep1 @ Abs2 @ ( map_fun @ A @ B @ D @ C @ Abs1 @ Rep2 @ F2 ) )
          = F2 ) ) ) ).

% lambda_prs1
thf(fact_54_rep__abs__rsp,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,X12: A,X23: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ X12 @ X23 )
       => ( R3 @ X12 @ ( Rep @ ( Abs @ X23 ) ) ) ) ) ).

% rep_abs_rsp
thf(fact_55_Quotient3__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( quotient3 @ A @ B )
      = ( ^ [R5: A > A > $o,Abs3: A > B,Rep3: B > A] :
            ( ! [A2: B] :
                ( ( Abs3 @ ( Rep3 @ A2 ) )
                = A2 )
            & ! [A2: B] : ( R5 @ ( Rep3 @ A2 ) @ ( Rep3 @ A2 ) )
            & ! [R: A,S: A] :
                ( ( R5 @ R @ S )
                = ( ( R5 @ R @ R )
                  & ( R5 @ S @ S )
                  & ( ( Abs3 @ R )
                    = ( Abs3 @ S ) ) ) ) ) ) ) ).

% Quotient3_def
thf(fact_56_Quotient3__rel,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( ( R3 @ R6 @ R6 )
          & ( R3 @ S4 @ S4 )
          & ( ( Abs @ R6 )
            = ( Abs @ S4 ) ) )
        = ( R3 @ R6 @ S4 ) ) ) ).

% Quotient3_rel
thf(fact_57_fun__quotient3,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,R1: A > A > $o,Abs12: A > B,Rep12: B > A,R2: C > C > $o,Abs22: C > D,Rep22: D > C] :
      ( ( quotient3 @ A @ B @ R1 @ Abs12 @ Rep12 )
     => ( ( quotient3 @ C @ D @ R2 @ Abs22 @ Rep22 )
       => ( quotient3 @ ( A > C ) @ ( B > D ) @ ( bNF_rel_fun @ A @ A @ C @ C @ R1 @ R2 ) @ ( map_fun @ B @ A @ C @ D @ Rep12 @ Abs22 ) @ ( map_fun @ A @ B @ D @ C @ Abs12 @ Rep22 ) ) ) ) ).

% fun_quotient3
thf(fact_58_Quotient3__refl1,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ R6 @ S4 )
       => ( R3 @ R6 @ R6 ) ) ) ).

% Quotient3_refl1
thf(fact_59_Quotient3__refl2,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ R6 @ S4 )
       => ( R3 @ S4 @ S4 ) ) ) ).

% Quotient3_refl2
thf(fact_60_rep__abs__rsp__left,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,X12: A,X23: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ X12 @ X23 )
       => ( R3 @ ( Rep @ ( Abs @ X12 ) ) @ X23 ) ) ) ).

% rep_abs_rsp_left
thf(fact_61_Quotient3__abs__rep,axiom,
    ! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( Abs @ ( Rep @ A4 ) )
        = A4 ) ) ).

% Quotient3_abs_rep
thf(fact_62_Quotient3__rel__abs,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ R6 @ S4 )
       => ( ( Abs @ R6 )
          = ( Abs @ S4 ) ) ) ) ).

% Quotient3_rel_abs
thf(fact_63_Quotient3__rel__rep,axiom,
    ! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B,B4: B] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ ( Rep @ A4 ) @ ( Rep @ B4 ) )
        = ( A4 = B4 ) ) ) ).

% Quotient3_rel_rep
thf(fact_64_Quotient3__rep__abs,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( R3 @ R6 @ R6 )
       => ( R3 @ ( Rep @ ( Abs @ R6 ) ) @ R6 ) ) ) ).

% Quotient3_rep_abs
thf(fact_65_Quotient3__rep__reflp,axiom,
    ! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( R3 @ ( Rep @ A4 ) @ ( Rep @ A4 ) ) ) ).

% Quotient3_rep_reflp
thf(fact_66_corec__llist__never__stop,axiom,
    ! [A: $tType,B: $tType,IS_LNIL: B > $o,LHD: B > A,MORE: B > ( coinductive_llist @ A ),LTL: B > B,X: B] :
      ( ( coindu1259883913_llist @ B @ A @ IS_LNIL @ LHD
        @ ^ [Uu: B] : $false
        @ MORE
        @ LTL
        @ X )
      = ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ X ) ) ).

% corec_llist_never_stop
thf(fact_67_fun_Orel__reflp,axiom,
    ! [D: $tType,A: $tType,R3: A > A > $o] :
      ( ( reflp @ A @ R3 )
     => ( reflp @ ( D > A )
        @ ( bNF_rel_fun @ D @ D @ A @ A
          @ ^ [Y: D,Z: D] : Y = Z
          @ R3 ) ) ) ).

% fun.rel_reflp
thf(fact_68_llist_Orel__reflp,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ( reflp @ A @ R3 )
     => ( reflp @ ( coinductive_llist @ A ) @ ( coindu1486289336t_all2 @ A @ A @ R3 ) ) ) ).

% llist.rel_reflp
thf(fact_69_tllist_Orel__reflp,axiom,
    ! [A: $tType,B: $tType,R1: A > A > $o,R2: B > B > $o] :
      ( ( reflp @ A @ R1 )
     => ( ( reflp @ B @ R2 )
       => ( reflp @ ( tLList446370796tllist @ A @ B ) @ ( tLList1380991092t_all2 @ A @ A @ B @ B @ R1 @ R2 ) ) ) ) ).

% tllist.rel_reflp
thf(fact_70_tllist_Oabs__induct,axiom,
    ! [B: $tType,A: $tType,P: ( tLList446370796tllist @ A @ B ) > $o,X: tLList446370796tllist @ A @ B] :
      ( ! [Y2: product_prod @ ( coinductive_llist @ A ) @ B] :
          ( P
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
            @ Y2 ) )
     => ( P @ X ) ) ).

% tllist.abs_induct
thf(fact_71_fun_Opred__True,axiom,
    ! [A: $tType,D: $tType] :
      ( ( basic_pred_fun @ D @ A
        @ ^ [Uu: D] : $true
        @ ^ [Uu: A] : $true )
      = ( ^ [Uu: D > A] : $true ) ) ).

% fun.pred_True
thf(fact_72_apply__rspQ3,axiom,
    ! [B: $tType,C: $tType,A: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,F2: A > C,G: A > C,X: A,Y5: A] :
      ( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
     => ( ( bNF_rel_fun @ A @ A @ C @ C @ R1 @ R2 @ F2 @ G )
       => ( ( R1 @ X @ Y5 )
         => ( R2 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ) ).

% apply_rspQ3
thf(fact_73_apply__rspQ3_H_H,axiom,
    ! [C: $tType,A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,S2: C > C > $o,F2: A > C,X: B] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( ( bNF_rel_fun @ A @ A @ C @ C @ R3 @ S2 @ F2 @ F2 )
       => ( S2 @ ( F2 @ ( Rep @ X ) ) @ ( F2 @ ( Rep @ X ) ) ) ) ) ).

% apply_rspQ3''
thf(fact_74_tllist__of__llist__cong,axiom,
    ! [B: $tType,A: $tType,Xs2: coinductive_llist @ A,Xs3: coinductive_llist @ A,B4: B,B6: B] :
      ( ( Xs2 = Xs3 )
     => ( ( ( coinductive_lfinite @ A @ Xs3 )
         => ( B4 = B6 ) )
       => ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs2 )
          = ( tLList1672613558_llist @ B @ A @ B6 @ Xs3 ) ) ) ) ).

% tllist_of_llist_cong
thf(fact_75_quot__rel__rsp,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A] :
      ( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
     => ( bNF_rel_fun @ A @ A @ ( A > $o ) @ ( A > $o ) @ R3
        @ ( bNF_rel_fun @ A @ A @ $o @ $o @ R3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ R3
        @ R3 ) ) ).

% quot_rel_rsp
thf(fact_76_cr__tllist__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList47617868tllist @ A @ B )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( tLList446370796tllist @ A @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,B2: B] :
            ( ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : Y = Z
            @ ( tLList1672613558_llist @ B @ A @ B2 @ Xs ) ) ) ) ).

% cr_tllist_def
thf(fact_77_map__fun__apply,axiom,
    ! [D: $tType,A: $tType,C: $tType,B: $tType] :
      ( ( map_fun @ B @ C @ D @ A )
      = ( ^ [F: B > C,G3: D > A,H3: C > D,X3: B] : ( G3 @ ( H3 @ ( F @ X3 ) ) ) ) ) ).

% map_fun_apply
thf(fact_78_tllist_Ocase__transfer,axiom,
    ! [B: $tType,E: $tType,A: $tType,C: $tType,F3: $tType,D: $tType,R2: B > D > $o,S2: E > F3 > $o,R1: A > C > $o] : ( bNF_rel_fun @ ( B > E ) @ ( D > F3 ) @ ( ( A > ( tLList446370796tllist @ A @ B ) > E ) > ( tLList446370796tllist @ A @ B ) > E ) @ ( ( C > ( tLList446370796tllist @ C @ D ) > F3 ) > ( tLList446370796tllist @ C @ D ) > F3 ) @ ( bNF_rel_fun @ B @ D @ E @ F3 @ R2 @ S2 ) @ ( bNF_rel_fun @ ( A > ( tLList446370796tllist @ A @ B ) > E ) @ ( C > ( tLList446370796tllist @ C @ D ) > F3 ) @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F3 ) @ ( bNF_rel_fun @ A @ C @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F3 ) @ R1 @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F3 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ S2 ) ) @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F3 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ S2 ) ) @ ( tLList200813139tllist @ B @ E @ A ) @ ( tLList200813139tllist @ D @ F3 @ C ) ) ).

% tllist.case_transfer
thf(fact_79_tllist_Opred__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( C > $o ) @ ( ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( D > $o ) > ( tLList446370796tllist @ C @ D ) > $o )
      @ ( bNF_rel_fun @ A @ C @ $o @ $o @ R1
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( B > $o ) @ ( D > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( tLList446370796tllist @ C @ D ) > $o )
        @ ( bNF_rel_fun @ B @ D @ $o @ $o @ R2
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ $o @ $o @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( tLList11265572tllist @ A @ B )
      @ ( tLList11265572tllist @ C @ D ) ) ).

% tllist.pred_transfer
thf(fact_80_iterates__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] : ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ A ) ) @ ( B > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ A3 @ ( coindu1486289336t_all2 @ A @ B @ A3 ) ) @ ( coinductive_iterates @ A ) @ ( coinductive_iterates @ B ) ) ).

% iterates_transfer
thf(fact_81_llist__all__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ A3 )
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( coindu543516966_llist @ A )
      @ ( coindu543516966_llist @ B ) ) ).

% llist_all_transfer
thf(fact_82_llist_Opred__transfer,axiom,
    ! [A: $tType,B: $tType,R3: A > B > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ R3 )
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( coindu543516966_llist @ A )
      @ ( coindu543516966_llist @ B ) ) ).

% llist.pred_transfer
thf(fact_83_tllist_Oid__abs__transfer,axiom,
    ! [G2: $tType,H: $tType,J: $tType,I: $tType,T: G2 > I > $o,Ta: H > J > $o] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( product_prod @ ( coinductive_llist @ I ) @ J ) @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( basic_rel_prod @ ( coinductive_llist @ G2 ) @ ( coinductive_llist @ I ) @ H @ J @ ( coindu1486289336t_all2 @ G2 @ I @ T ) @ Ta ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta )
      @ ^ [X3: product_prod @ ( coinductive_llist @ G2 ) @ H] : X3
      @ ( product_case_prod @ ( coinductive_llist @ I ) @ J @ ( tLList446370796tllist @ I @ J )
        @ ^ [Xs: coinductive_llist @ I,A2: J] : ( tLList1672613558_llist @ J @ I @ A2 @ Xs ) ) ) ).

% tllist.id_abs_transfer
thf(fact_84_llist_Ocase__transfer,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,S2: C > D > $o,R3: A > B > $o] : ( bNF_rel_fun @ C @ D @ ( ( A > ( coinductive_llist @ A ) > C ) > ( coinductive_llist @ A ) > C ) @ ( ( B > ( coinductive_llist @ B ) > D ) > ( coinductive_llist @ B ) > D ) @ S2 @ ( bNF_rel_fun @ ( A > ( coinductive_llist @ A ) > C ) @ ( B > ( coinductive_llist @ B ) > D ) @ ( ( coinductive_llist @ A ) > C ) @ ( ( coinductive_llist @ B ) > D ) @ ( bNF_rel_fun @ A @ B @ ( ( coinductive_llist @ A ) > C ) @ ( ( coinductive_llist @ B ) > D ) @ R3 @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ C @ D @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ S2 ) ) @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ C @ D @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ S2 ) ) @ ( coindu1381640503_llist @ C @ A ) @ ( coindu1381640503_llist @ D @ B ) ) ).

% llist.case_transfer
thf(fact_85_prod_Orel__refl,axiom,
    ! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: product_prod @ C @ D] :
      ( ! [X2: C] : ( R1a @ X2 @ X2 )
     => ( ! [X2: D] : ( R2a @ X2 @ X2 )
       => ( basic_rel_prod @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).

% prod.rel_refl
thf(fact_86_prod_Orel__eq,axiom,
    ! [B: $tType,A: $tType] :
      ( ( basic_rel_prod @ A @ A @ B @ B
        @ ^ [Y: A,Z: A] : Y = Z
        @ ^ [Y: B,Z: B] : Y = Z )
      = ( ^ [Y: product_prod @ A @ B,Z: product_prod @ A @ B] : Y = Z ) ) ).

% prod.rel_eq
thf(fact_87_llist_Ocase__distrib,axiom,
    ! [B: $tType,C: $tType,A: $tType,H2: B > C,F1: B,F22: A > ( coinductive_llist @ A ) > B,Llist: coinductive_llist @ A] :
      ( ( H2 @ ( coindu1381640503_llist @ B @ A @ F1 @ F22 @ Llist ) )
      = ( coindu1381640503_llist @ C @ A @ ( H2 @ F1 )
        @ ^ [X1: A,X22: coinductive_llist @ A] : ( H2 @ ( F22 @ X1 @ X22 ) )
        @ Llist ) ) ).

% llist.case_distrib
thf(fact_88_llist_Opred__True,axiom,
    ! [A: $tType] :
      ( ( coindu543516966_llist @ A
        @ ^ [Uu: A] : $true )
      = ( ^ [Uu: coinductive_llist @ A] : $true ) ) ).

% llist.pred_True
thf(fact_89_tllist_Opred__True,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList11265572tllist @ A @ B
        @ ^ [Uu: A] : $true
        @ ^ [Uu: B] : $true )
      = ( ^ [Uu: tLList446370796tllist @ A @ B] : $true ) ) ).

% tllist.pred_True
thf(fact_90_tllist_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H2: C > D,F1: B > C,F22: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
      ( ( H2 @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F22 @ Tllist ) )
      = ( tLList200813139tllist @ B @ D @ A
        @ ^ [X3: B] : ( H2 @ ( F1 @ X3 ) )
        @ ^ [X1: A,X22: tLList446370796tllist @ A @ B] : ( H2 @ ( F22 @ X1 @ X22 ) )
        @ Tllist ) ) ).

% tllist.case_distrib
thf(fact_91_lfinite__iterates,axiom,
    ! [A: $tType,F2: A > A,X: A] :
      ~ ( coinductive_lfinite @ A @ ( coinductive_iterates @ A @ F2 @ X ) ) ).

% lfinite_iterates
thf(fact_92_prod_Orel__transfer,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,H: $tType,F3: $tType,G2: $tType,E: $tType,S1a: A > E > $o,S1c: C > G2 > $o,S2a: B > F3 > $o,S2c: D > H > $o] :
      ( bNF_rel_fun @ ( A > C > $o ) @ ( E > G2 > $o ) @ ( ( B > D > $o ) > ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( ( F3 > H > $o ) > ( product_prod @ E @ F3 ) > ( product_prod @ G2 @ H ) > $o )
      @ ( bNF_rel_fun @ A @ E @ ( C > $o ) @ ( G2 > $o ) @ S1a
        @ ( bNF_rel_fun @ C @ G2 @ $o @ $o @ S1c
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( bNF_rel_fun @ ( B > D > $o ) @ ( F3 > H > $o ) @ ( ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( ( product_prod @ E @ F3 ) > ( product_prod @ G2 @ H ) > $o )
        @ ( bNF_rel_fun @ B @ F3 @ ( D > $o ) @ ( H > $o ) @ S2a
          @ ( bNF_rel_fun @ D @ H @ $o @ $o @ S2c
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ E @ F3 ) @ ( ( product_prod @ C @ D ) > $o ) @ ( ( product_prod @ G2 @ H ) > $o ) @ ( basic_rel_prod @ A @ E @ B @ F3 @ S1a @ S2a )
          @ ( bNF_rel_fun @ ( product_prod @ C @ D ) @ ( product_prod @ G2 @ H ) @ $o @ $o @ ( basic_rel_prod @ C @ G2 @ D @ H @ S1c @ S2c )
            @ ^ [Y: $o,Z: $o] : Y = Z ) ) )
      @ ( basic_rel_prod @ A @ C @ B @ D )
      @ ( basic_rel_prod @ E @ G2 @ F3 @ H ) ) ).

% prod.rel_transfer
thf(fact_93_rel__prod__conv,axiom,
    ! [B: $tType,D: $tType,C: $tType,A: $tType] :
      ( ( basic_rel_prod @ A @ C @ B @ D )
      = ( ^ [R12: A > C > $o,R22: B > D > $o] :
            ( product_case_prod @ A @ B @ ( ( product_prod @ C @ D ) > $o )
            @ ^ [A2: A,B2: B] :
                ( product_case_prod @ C @ D @ $o
                @ ^ [C4: C,D3: D] :
                    ( ( R12 @ A2 @ C4 )
                    & ( R22 @ B2 @ D3 ) ) ) ) ) ) ).

% rel_prod_conv
thf(fact_94_case__prod__transfer,axiom,
    ! [A: $tType,B: $tType,C: $tType,F3: $tType,E: $tType,D: $tType,A3: A > D > $o,B3: B > E > $o,C2: C > F3 > $o] : ( bNF_rel_fun @ ( A > B > C ) @ ( D > E > F3 ) @ ( ( product_prod @ A @ B ) > C ) @ ( ( product_prod @ D @ E ) > F3 ) @ ( bNF_rel_fun @ A @ D @ ( B > C ) @ ( E > F3 ) @ A3 @ ( bNF_rel_fun @ B @ E @ C @ F3 @ B3 @ C2 ) ) @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ D @ E ) @ C @ F3 @ ( basic_rel_prod @ A @ D @ B @ E @ A3 @ B3 ) @ C2 ) @ ( product_case_prod @ A @ B @ C ) @ ( product_case_prod @ D @ E @ F3 ) ) ).

% case_prod_transfer
thf(fact_95_prod_Orel__reflp,axiom,
    ! [A: $tType,B: $tType,R1: A > A > $o,R2: B > B > $o] :
      ( ( reflp @ A @ R1 )
     => ( ( reflp @ B @ R2 )
       => ( reflp @ ( product_prod @ A @ B ) @ ( basic_rel_prod @ A @ A @ B @ B @ R1 @ R2 ) ) ) ) ).

% prod.rel_reflp
thf(fact_96_case__llist__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,B3: A > B > $o,A3: C > D > $o] : ( bNF_rel_fun @ A @ B @ ( ( C > ( coinductive_llist @ C ) > A ) > ( coinductive_llist @ C ) > A ) @ ( ( D > ( coinductive_llist @ D ) > B ) > ( coinductive_llist @ D ) > B ) @ B3 @ ( bNF_rel_fun @ ( C > ( coinductive_llist @ C ) > A ) @ ( D > ( coinductive_llist @ D ) > B ) @ ( ( coinductive_llist @ C ) > A ) @ ( ( coinductive_llist @ D ) > B ) @ ( bNF_rel_fun @ C @ D @ ( ( coinductive_llist @ C ) > A ) @ ( ( coinductive_llist @ D ) > B ) @ A3 @ ( bNF_rel_fun @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A @ B @ ( coindu1486289336t_all2 @ C @ D @ A3 ) @ B3 ) ) @ ( bNF_rel_fun @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A @ B @ ( coindu1486289336t_all2 @ C @ D @ A3 ) @ B3 ) ) @ ( coindu1381640503_llist @ A @ C ) @ ( coindu1381640503_llist @ B @ D ) ) ).

% case_llist_transfer
thf(fact_97_pcr__tllist__def,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType] :
      ( ( tLList1832236142tllist @ C @ A @ D @ B )
      = ( ^ [T2: C > A > $o,Ta2: D > B > $o] : ( relcompp @ ( product_prod @ ( coinductive_llist @ C ) @ D ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( basic_rel_prod @ ( coinductive_llist @ C ) @ ( coinductive_llist @ A ) @ D @ B @ ( coindu1486289336t_all2 @ C @ A @ T2 ) @ Ta2 ) @ ( tLList47617868tllist @ A @ B ) ) ) ) ).

% pcr_tllist_def
thf(fact_98_curry__transfer,axiom,
    ! [A: $tType,B: $tType,C: $tType,F3: $tType,E: $tType,D: $tType,A3: A > D > $o,B3: B > E > $o,C2: C > F3 > $o] : ( bNF_rel_fun @ ( ( product_prod @ A @ B ) > C ) @ ( ( product_prod @ D @ E ) > F3 ) @ ( A > B > C ) @ ( D > E > F3 ) @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ D @ E ) @ C @ F3 @ ( basic_rel_prod @ A @ D @ B @ E @ A3 @ B3 ) @ C2 ) @ ( bNF_rel_fun @ A @ D @ ( B > C ) @ ( E > F3 ) @ A3 @ ( bNF_rel_fun @ B @ E @ C @ F3 @ B3 @ C2 ) ) @ ( product_curry @ A @ B @ C ) @ ( product_curry @ D @ E @ F3 ) ) ).

% curry_transfer
thf(fact_99_bex1__rel__rsp,axiom,
    ! [B: $tType,A: $tType,R3: A > A > $o,Absf: A > B,Repf: B > A] :
      ( ( quotient3 @ A @ B @ R3 @ Absf @ Repf )
     => ( bNF_rel_fun @ ( A > $o ) @ ( A > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ A @ $o @ $o @ R3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( bex1_rel @ A @ R3 )
        @ ( bex1_rel @ A @ R3 ) ) ) ).

% bex1_rel_rsp
thf(fact_100_reflpD,axiom,
    ! [A: $tType,R6: A > A > $o,X: A] :
      ( ( reflp @ A @ R6 )
     => ( R6 @ X @ X ) ) ).

% reflpD
thf(fact_101_reflpE,axiom,
    ! [A: $tType,R6: A > A > $o,X: A] :
      ( ( reflp @ A @ R6 )
     => ( R6 @ X @ X ) ) ).

% reflpE
thf(fact_102_reflpI,axiom,
    ! [A: $tType,R6: A > A > $o] :
      ( ! [X2: A] : ( R6 @ X2 @ X2 )
     => ( reflp @ A @ R6 ) ) ).

% reflpI
thf(fact_103_case__prod__curry,axiom,
    ! [C: $tType,B: $tType,A: $tType,F2: ( product_prod @ A @ B ) > C] :
      ( ( product_case_prod @ A @ B @ C @ ( product_curry @ A @ B @ C @ F2 ) )
      = F2 ) ).

% case_prod_curry
thf(fact_104_curry__case__prod,axiom,
    ! [C: $tType,B: $tType,A: $tType,F2: A > B > C] :
      ( ( product_curry @ A @ B @ C @ ( product_case_prod @ A @ B @ C @ F2 ) )
      = F2 ) ).

% curry_case_prod
thf(fact_105_fun_Orel__compp,axiom,
    ! [A: $tType,D: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
      ( ( bNF_rel_fun @ D @ D @ A @ C
        @ ^ [Y: D,Z: D] : Y = Z
        @ ( relcompp @ A @ B @ C @ R3 @ S2 ) )
      = ( relcompp @ ( D > A ) @ ( D > B ) @ ( D > C )
        @ ( bNF_rel_fun @ D @ D @ A @ B
          @ ^ [Y: D,Z: D] : Y = Z
          @ R3 )
        @ ( bNF_rel_fun @ D @ D @ B @ C
          @ ^ [Y: D,Z: D] : Y = Z
          @ S2 ) ) ) ).

% fun.rel_compp
thf(fact_106_prod_Orel__compp,axiom,
    ! [B: $tType,A: $tType,C: $tType,E: $tType,F3: $tType,D: $tType,R1: A > C > $o,S1: C > E > $o,R2: B > D > $o,S22: D > F3 > $o] :
      ( ( basic_rel_prod @ A @ E @ B @ F3 @ ( relcompp @ A @ C @ E @ R1 @ S1 ) @ ( relcompp @ B @ D @ F3 @ R2 @ S22 ) )
      = ( relcompp @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( product_prod @ E @ F3 ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) @ ( basic_rel_prod @ C @ E @ D @ F3 @ S1 @ S22 ) ) ) ).

% prod.rel_compp
thf(fact_107_eq__comp__r,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ( relcompp @ A @ A @ A
        @ ^ [Y: A,Z: A] : Y = Z
        @ ( relcompp @ A @ A @ A @ R3
          @ ^ [Y: A,Z: A] : Y = Z ) )
      = R3 ) ).

% eq_comp_r
thf(fact_108_bex1__rel__aux,axiom,
    ! [A: $tType,R3: A > A > $o,X: A > $o,Y5: A > $o] :
      ( ! [Xa2: A,Ya2: A] :
          ( ( R3 @ Xa2 @ Ya2 )
         => ( ( X @ Xa2 )
            = ( Y5 @ Ya2 ) ) )
     => ( ( bex1_rel @ A @ R3 @ X )
       => ( bex1_rel @ A @ R3 @ Y5 ) ) ) ).

% bex1_rel_aux
thf(fact_109_bex1__rel__aux2,axiom,
    ! [A: $tType,R3: A > A > $o,X: A > $o,Y5: A > $o] :
      ( ! [Xa2: A,Ya2: A] :
          ( ( R3 @ Xa2 @ Ya2 )
         => ( ( X @ Xa2 )
            = ( Y5 @ Ya2 ) ) )
     => ( ( bex1_rel @ A @ R3 @ Y5 )
       => ( bex1_rel @ A @ R3 @ X ) ) ) ).

% bex1_rel_aux2
thf(fact_110_llist_Orel__compp,axiom,
    ! [A: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
      ( ( coindu1486289336t_all2 @ A @ C @ ( relcompp @ A @ B @ C @ R3 @ S2 ) )
      = ( relcompp @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ C ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ ( coindu1486289336t_all2 @ B @ C @ S2 ) ) ) ).

% llist.rel_compp
thf(fact_111_tllist_Orel__compp,axiom,
    ! [B: $tType,A: $tType,C: $tType,E: $tType,F3: $tType,D: $tType,R1: A > C > $o,S1: C > E > $o,R2: B > D > $o,S22: D > F3 > $o] :
      ( ( tLList1380991092t_all2 @ A @ E @ B @ F3 @ ( relcompp @ A @ C @ E @ R1 @ S1 ) @ ( relcompp @ B @ D @ F3 @ R2 @ S22 ) )
      = ( relcompp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ E @ F3 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ ( tLList1380991092t_all2 @ C @ E @ D @ F3 @ S1 @ S22 ) ) ) ).

% tllist.rel_compp
thf(fact_112_relcompp_OrelcompI,axiom,
    ! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,A4: A,B4: B,S4: B > C > $o,C3: C] :
      ( ( R6 @ A4 @ B4 )
     => ( ( S4 @ B4 @ C3 )
       => ( relcompp @ A @ B @ C @ R6 @ S4 @ A4 @ C3 ) ) ) ).

% relcompp.relcompI
thf(fact_113_relcompp_Oinducts,axiom,
    ! [B: $tType,A: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,X12: A,X23: C,P: A > C > $o] :
      ( ( relcompp @ A @ B @ C @ R6 @ S4 @ X12 @ X23 )
     => ( ! [A5: A,B5: B,C5: C] :
            ( ( R6 @ A5 @ B5 )
           => ( ( S4 @ B5 @ C5 )
             => ( P @ A5 @ C5 ) ) )
       => ( P @ X12 @ X23 ) ) ) ).

% relcompp.inducts
thf(fact_114_relcompp__assoc,axiom,
    ! [A: $tType,D: $tType,B: $tType,C: $tType,R6: A > D > $o,S4: D > C > $o,T3: C > B > $o] :
      ( ( relcompp @ A @ C @ B @ ( relcompp @ A @ D @ C @ R6 @ S4 ) @ T3 )
      = ( relcompp @ A @ D @ B @ R6 @ ( relcompp @ D @ C @ B @ S4 @ T3 ) ) ) ).

% relcompp_assoc
thf(fact_115_relcompp__apply,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( relcompp @ A @ B @ C )
      = ( ^ [R5: A > B > $o,S5: B > C > $o,A2: A,C4: C] :
          ? [B2: B] :
            ( ( R5 @ A2 @ B2 )
            & ( S5 @ B2 @ C4 ) ) ) ) ).

% relcompp_apply
thf(fact_116_relcompp_Osimps,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( relcompp @ A @ B @ C )
      = ( ^ [R: A > B > $o,S: B > C > $o,A1: A,A22: C] :
          ? [A2: A,B2: B,C4: C] :
            ( ( A1 = A2 )
            & ( A22 = C4 )
            & ( R @ A2 @ B2 )
            & ( S @ B2 @ C4 ) ) ) ) ).

% relcompp.simps
thf(fact_117_relcompp_Ocases,axiom,
    ! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,A12: A,A23: C] :
      ( ( relcompp @ A @ B @ C @ R6 @ S4 @ A12 @ A23 )
     => ~ ! [B5: B] :
            ( ( R6 @ A12 @ B5 )
           => ~ ( S4 @ B5 @ A23 ) ) ) ).

% relcompp.cases
thf(fact_118_relcomppE,axiom,
    ! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,A4: A,C3: C] :
      ( ( relcompp @ A @ B @ C @ R6 @ S4 @ A4 @ C3 )
     => ~ ! [B5: B] :
            ( ( R6 @ A4 @ B5 )
           => ~ ( S4 @ B5 @ C3 ) ) ) ).

% relcomppE
thf(fact_119_eq__OO,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( relcompp @ A @ A @ B
        @ ^ [Y: A,Z: A] : Y = Z
        @ R3 )
      = R3 ) ).

% eq_OO
thf(fact_120_OO__eq,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( relcompp @ A @ B @ B @ R3
        @ ^ [Y: B,Z: B] : Y = Z )
      = R3 ) ).

% OO_eq
thf(fact_121_curry__K,axiom,
    ! [B: $tType,C: $tType,A: $tType,C3: C] :
      ( ( product_curry @ A @ B @ C
        @ ^ [X3: product_prod @ A @ B] : C3 )
      = ( ^ [X3: A,Y3: B] : C3 ) ) ).

% curry_K
thf(fact_122_reflp__mono,axiom,
    ! [A: $tType,R3: A > A > $o,Q: A > A > $o] :
      ( ( reflp @ A @ R3 )
     => ( ! [X2: A,Y2: A] :
            ( ( R3 @ X2 @ Y2 )
           => ( Q @ X2 @ Y2 ) )
       => ( reflp @ A @ Q ) ) ) ).

% reflp_mono
thf(fact_123_reflp__def,axiom,
    ! [A: $tType] :
      ( ( reflp @ A )
      = ( ^ [R: A > A > $o] :
          ! [X3: A] : ( R @ X3 @ X3 ) ) ) ).

% reflp_def
thf(fact_124_relcompp__transfer,axiom,
    ! [C: $tType,A: $tType,E: $tType,F3: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o,C2: E > F3 > $o] :
      ( ( bi_total @ A @ B @ B3 )
     => ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( ( A > E > $o ) > C > E > $o ) @ ( ( B > F3 > $o ) > D > F3 > $o )
        @ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( A > E > $o ) @ ( B > F3 > $o ) @ ( C > E > $o ) @ ( D > F3 > $o )
          @ ( bNF_rel_fun @ A @ B @ ( E > $o ) @ ( F3 > $o ) @ B3
            @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
              @ ^ [Y: $o,Z: $o] : Y = Z ) )
          @ ( bNF_rel_fun @ C @ D @ ( E > $o ) @ ( F3 > $o ) @ A3
            @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
              @ ^ [Y: $o,Z: $o] : Y = Z ) ) )
        @ ( relcompp @ C @ A @ E )
        @ ( relcompp @ D @ B @ F3 ) ) ) ).

% relcompp_transfer
thf(fact_125_sndOp__in,axiom,
    ! [A: $tType,B: $tType,C: $tType,Ac: product_prod @ A @ B,P: A > C > $o,Q: C > B > $o] :
      ( ( member @ ( product_prod @ A @ B ) @ Ac @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ ( relcompp @ A @ C @ B @ P @ Q ) ) ) )
     => ( member @ ( product_prod @ C @ B ) @ ( bNF_sndOp @ A @ C @ B @ P @ Q @ Ac ) @ ( collect @ ( product_prod @ C @ B ) @ ( product_case_prod @ C @ B @ $o @ Q ) ) ) ) ).

% sndOp_in
thf(fact_126_fstOp__in,axiom,
    ! [B: $tType,C: $tType,A: $tType,Ac: product_prod @ A @ B,P: A > C > $o,Q: C > B > $o] :
      ( ( member @ ( product_prod @ A @ B ) @ Ac @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ ( relcompp @ A @ C @ B @ P @ Q ) ) ) )
     => ( member @ ( product_prod @ A @ C ) @ ( bNF_fstOp @ A @ C @ B @ P @ Q @ Ac ) @ ( collect @ ( product_prod @ A @ C ) @ ( product_case_prod @ A @ C @ $o @ P ) ) ) ) ).

% fstOp_in
thf(fact_127_prod__pred__parametric,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( C > $o ) > ( product_prod @ A @ C ) > $o ) @ ( ( D > $o ) > ( product_prod @ B @ D ) > $o )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( product_prod @ A @ C ) > $o ) @ ( ( product_prod @ B @ D ) > $o )
        @ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ( bNF_rel_fun @ ( product_prod @ A @ C ) @ ( product_prod @ B @ D ) @ $o @ $o @ ( basic_rel_prod @ A @ B @ C @ D @ A3 @ B3 )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( basic_pred_prod @ A @ C )
      @ ( basic_pred_prod @ B @ D ) ) ).

% prod_pred_parametric
thf(fact_128_prod_Opred__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( C > $o ) @ ( ( B > $o ) > ( product_prod @ A @ B ) > $o ) @ ( ( D > $o ) > ( product_prod @ C @ D ) > $o )
      @ ( bNF_rel_fun @ A @ C @ $o @ $o @ R1
        @ ^ [Y: $o,Z: $o] : Y = Z )
      @ ( bNF_rel_fun @ ( B > $o ) @ ( D > $o ) @ ( ( product_prod @ A @ B ) > $o ) @ ( ( product_prod @ C @ D ) > $o )
        @ ( bNF_rel_fun @ B @ D @ $o @ $o @ R2
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ $o @ $o @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 )
          @ ^ [Y: $o,Z: $o] : Y = Z ) )
      @ ( basic_pred_prod @ A @ B )
      @ ( basic_pred_prod @ C @ D ) ) ).

% prod.pred_transfer
thf(fact_129_prod_Obi__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( bi_total @ A @ C @ R1 )
     => ( ( bi_total @ B @ D @ R2 )
       => ( bi_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% prod.bi_total_rel
thf(fact_130_llist_Obi__total__rel,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( bi_total @ A @ B @ R3 )
     => ( bi_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).

% llist.bi_total_rel
thf(fact_131_tllist_Obi__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( bi_total @ A @ C @ R1 )
     => ( ( bi_total @ B @ D @ R2 )
       => ( bi_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% tllist.bi_total_rel
thf(fact_132_tllist_Obi__total,axiom,
    ! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
      ( ( bi_total @ G2 @ I @ T )
     => ( ( bi_total @ H @ J @ Ta )
       => ( bi_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).

% tllist.bi_total
thf(fact_133_bi__total__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( bi_total @ A @ B )
      = ( ^ [R5: A > B > $o] :
            ( ! [X3: A] :
                ( ^ [P3: B > $o] :
                  ? [X5: B] : ( P3 @ X5 )
                @ ( R5 @ X3 ) )
            & ! [Y3: B] :
              ? [X3: A] : ( R5 @ X3 @ Y3 ) ) ) ) ).

% bi_total_def
thf(fact_134_bi__total__eq,axiom,
    ! [A: $tType] :
      ( bi_total @ A @ A
      @ ^ [Y: A,Z: A] : Y = Z ) ).

% bi_total_eq
thf(fact_135_prod_Opred__True,axiom,
    ! [B: $tType,A: $tType] :
      ( ( basic_pred_prod @ A @ B
        @ ^ [Uu: A] : $true
        @ ^ [Uu: B] : $true )
      = ( ^ [Uu: product_prod @ A @ B] : $true ) ) ).

% prod.pred_True
thf(fact_136_bi__total__OO,axiom,
    ! [A: $tType,C: $tType,B: $tType,A3: A > B > $o,B3: B > C > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( ( bi_total @ B @ C @ B3 )
       => ( bi_total @ A @ C @ ( relcompp @ A @ B @ C @ A3 @ B3 ) ) ) ) ).

% bi_total_OO
thf(fact_137_reflp__transfer_I1_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( reflp @ A )
        @ ( reflp @ B ) ) ) ).

% reflp_transfer(1)
thf(fact_138_reflp__transfer_I4_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3 @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ rev_implies ) ) @ rev_implies @ ( reflp @ A ) @ ( reflp @ B ) ) ) ).

% reflp_transfer(4)
thf(fact_139_reflp__transfer_I5_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ rev_implies
        @ ( reflp @ A )
        @ ( reflp @ B ) ) ) ).

% reflp_transfer(5)
thf(fact_140_fun__ord__parametric,axiom,
    ! [C: $tType,D: $tType,A: $tType,B: $tType,F3: $tType,E: $tType,C2: A > B > $o,A3: C > E > $o,B3: D > F3 > $o] :
      ( ( bi_total @ A @ B @ C2 )
     => ( bNF_rel_fun @ ( C > D > $o ) @ ( E > F3 > $o ) @ ( ( A > C ) > ( A > D ) > $o ) @ ( ( B > E ) > ( B > F3 ) > $o )
        @ ( bNF_rel_fun @ C @ E @ ( D > $o ) @ ( F3 > $o ) @ A3
          @ ( bNF_rel_fun @ D @ F3 @ $o @ $o @ B3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( A > C ) @ ( B > E ) @ ( ( A > D ) > $o ) @ ( ( B > F3 ) > $o ) @ ( bNF_rel_fun @ A @ B @ C @ E @ C2 @ A3 )
          @ ( bNF_rel_fun @ ( A > D ) @ ( B > F3 ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ D @ F3 @ C2 @ B3 )
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( partial_fun_ord @ C @ D @ A )
        @ ( partial_fun_ord @ E @ F3 @ B ) ) ) ).

% fun_ord_parametric
thf(fact_141_transfer__forall__transfer_I1_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( transfer_forall @ A )
        @ ( transfer_forall @ B ) ) ) ).

% transfer_forall_transfer(1)
thf(fact_142_rev__implies__def,axiom,
    ( rev_implies
    = ( ^ [X3: $o,Y3: $o] :
          ( Y3
         => X3 ) ) ) ).

% rev_implies_def
thf(fact_143_transfer__forall__transfer_I4_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ rev_implies
        @ ( transfer_forall @ A )
        @ ( transfer_forall @ B ) ) ) ).

% transfer_forall_transfer(4)
thf(fact_144_transfer__forall__transfer_I5_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ rev_implies ) @ rev_implies @ ( transfer_forall @ A ) @ ( transfer_forall @ B ) ) ) ).

% transfer_forall_transfer(5)
thf(fact_145_left__total__parametric,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( ( bi_total @ C @ D @ B3 )
       => ( bNF_rel_fun @ ( A > C > $o ) @ ( B > D > $o ) @ $o @ $o
          @ ( bNF_rel_fun @ A @ B @ ( C > $o ) @ ( D > $o ) @ A3
            @ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
              @ ^ [Y: $o,Z: $o] : Y = Z ) )
          @ ^ [Y: $o,Z: $o] : Y = Z
          @ ( left_total @ A @ C )
          @ ( left_total @ B @ D ) ) ) ) ).

% left_total_parametric
thf(fact_146_monotone__parametric,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ ( ( C > C > $o ) > ( A > C ) > $o ) @ ( ( D > D > $o ) > ( B > D ) > $o )
        @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( C > C > $o ) @ ( D > D > $o ) @ ( ( A > C ) > $o ) @ ( ( B > D ) > $o )
          @ ( bNF_rel_fun @ C @ D @ ( C > $o ) @ ( D > $o ) @ B3
            @ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
              @ ^ [Y: $o,Z: $o] : Y = Z ) )
          @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( comple1396247847notone @ A @ C )
        @ ( comple1396247847notone @ B @ D ) ) ) ).

% monotone_parametric
thf(fact_147_reflp__transfer_I3_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ (=>)
        @ ( reflp @ A )
        @ ( reflp @ B ) ) ) ).

% reflp_transfer(3)
thf(fact_148_reflp__transfer_I2_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3 @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ (=>) ) ) @ (=>) @ ( reflp @ A ) @ ( reflp @ B ) ) ) ).

% reflp_transfer(2)
thf(fact_149_bi__total__alt__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( bi_total @ A @ B )
      = ( ^ [A6: A > B > $o] :
            ( ( left_total @ A @ B @ A6 )
            & ( right_total @ A @ B @ A6 ) ) ) ) ).

% bi_total_alt_def
thf(fact_150_bi__totalI,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( left_total @ A @ B @ R3 )
     => ( ( right_total @ A @ B @ R3 )
       => ( bi_total @ A @ B @ R3 ) ) ) ).

% bi_totalI
thf(fact_151_prod_Oright__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( right_total @ A @ C @ R1 )
     => ( ( right_total @ B @ D @ R2 )
       => ( right_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% prod.right_total_rel
thf(fact_152_prod_Oleft__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( left_total @ A @ C @ R1 )
     => ( ( left_total @ B @ D @ R2 )
       => ( left_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% prod.left_total_rel
thf(fact_153_llist_Oright__total__rel,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( right_total @ A @ B @ R3 )
     => ( right_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).

% llist.right_total_rel
thf(fact_154_tllist_Oright__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( right_total @ A @ C @ R1 )
     => ( ( right_total @ B @ D @ R2 )
       => ( right_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% tllist.right_total_rel
thf(fact_155_llist_Oleft__total__rel,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( left_total @ A @ B @ R3 )
     => ( left_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).

% llist.left_total_rel
thf(fact_156_tllist_Oright__total,axiom,
    ! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
      ( ( right_total @ G2 @ I @ T )
     => ( ( right_total @ H @ J @ Ta )
       => ( right_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).

% tllist.right_total
thf(fact_157_tllist_Oleft__total__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( left_total @ A @ C @ R1 )
     => ( ( left_total @ B @ D @ R2 )
       => ( left_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).

% tllist.left_total_rel
thf(fact_158_right__total__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( right_total @ A @ B )
      = ( ^ [R5: A > B > $o] :
          ! [Y3: B] :
          ? [X3: A] : ( R5 @ X3 @ Y3 ) ) ) ).

% right_total_def
thf(fact_159_right__total__eq,axiom,
    ! [A: $tType] :
      ( right_total @ A @ A
      @ ^ [Y: A,Z: A] : Y = Z ) ).

% right_total_eq
thf(fact_160_left__total__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( left_total @ A @ B )
      = ( ^ [R5: A > B > $o] :
          ! [X3: A] :
            ( ^ [P3: B > $o] :
              ? [X5: B] : ( P3 @ X5 )
            @ ( R5 @ X3 ) ) ) ) ).

% left_total_def
thf(fact_161_left__total__eq,axiom,
    ! [A: $tType] :
      ( left_total @ A @ A
      @ ^ [Y: A,Z: A] : Y = Z ) ).

% left_total_eq
thf(fact_162_right__totalI,axiom,
    ! [A: $tType,B: $tType,A3: B > A > $o] :
      ( ! [Y2: A] :
        ? [X6: B] : ( A3 @ X6 @ Y2 )
     => ( right_total @ B @ A @ A3 ) ) ).

% right_totalI
thf(fact_163_right__totalE,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o,Y5: B] :
      ( ( right_total @ A @ B @ A3 )
     => ~ ! [X2: A] :
            ~ ( A3 @ X2 @ Y5 ) ) ).

% right_totalE
thf(fact_164_left__totalI,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ! [X2: A] :
        ? [X13: B] : ( R3 @ X2 @ X13 )
     => ( left_total @ A @ B @ R3 ) ) ).

% left_totalI
thf(fact_165_left__totalE,axiom,
    ! [A: $tType,B: $tType,R3: A > B > $o] :
      ( ( left_total @ A @ B @ R3 )
     => ! [X6: A] :
        ? [X14: B] : ( R3 @ X6 @ X14 ) ) ).

% left_totalE
thf(fact_166_tllist_Oleft__total,axiom,
    ! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
      ( ( left_total @ G2 @ I @ T )
     => ( ( left_total @ H @ J @ Ta )
       => ( left_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).

% tllist.left_total
thf(fact_167_llist__case__mono,axiom,
    ! [C: $tType,B: $tType,A: $tType,Orda: A > A > $o,Ordb: B > B > $o,Lnil: A > B,Lcons: A > C > ( coinductive_llist @ C ) > B,X: coinductive_llist @ C] :
      ( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ Lnil )
     => ( ! [X2: C,Xs4: coinductive_llist @ C] :
            ( comple1396247847notone @ A @ B @ Orda @ Ordb
            @ ^ [F: A] : ( Lcons @ F @ X2 @ Xs4 ) )
       => ( comple1396247847notone @ A @ B @ Orda @ Ordb
          @ ^ [F: A] : ( coindu1381640503_llist @ B @ C @ ( Lnil @ F ) @ ( Lcons @ F ) @ X ) ) ) ) ).

% llist_case_mono
thf(fact_168_left__total__OO,axiom,
    ! [A: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
      ( ( left_total @ A @ B @ R3 )
     => ( ( left_total @ B @ C @ S2 )
       => ( left_total @ A @ C @ ( relcompp @ A @ B @ C @ R3 @ S2 ) ) ) ) ).

% left_total_OO
thf(fact_169_right__total__OO,axiom,
    ! [A: $tType,C: $tType,B: $tType,A3: A > B > $o,B3: B > C > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( ( right_total @ B @ C @ B3 )
       => ( right_total @ A @ C @ ( relcompp @ A @ B @ C @ A3 @ B3 ) ) ) ) ).

% right_total_OO
thf(fact_170_transfer__forall__transfer_I3_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ (=>) ) @ (=>) @ ( transfer_forall @ A ) @ ( transfer_forall @ B ) ) ) ).

% transfer_forall_transfer(3)
thf(fact_171_transfer__forall__transfer_I2_J,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ (=>)
        @ ( transfer_forall @ A )
        @ ( transfer_forall @ B ) ) ) ).

% transfer_forall_transfer(2)
thf(fact_172_right__total__parametric,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( ( bi_total @ C @ D @ B3 )
       => ( bNF_rel_fun @ ( A > C > $o ) @ ( B > D > $o ) @ $o @ $o
          @ ( bNF_rel_fun @ A @ B @ ( C > $o ) @ ( D > $o ) @ A3
            @ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
              @ ^ [Y: $o,Z: $o] : Y = Z ) )
          @ ^ [Y: $o,Z: $o] : Y = Z
          @ ( right_total @ A @ C )
          @ ( right_total @ B @ D ) ) ) ) ).

% right_total_parametric
thf(fact_173_monotone__fun__ord__apply,axiom,
    ! [A: $tType,C: $tType,B: $tType,Orda: A > A > $o,Ordb: C > C > $o,F2: A > B > C] :
      ( ( comple1396247847notone @ A @ ( B > C ) @ Orda @ ( partial_fun_ord @ C @ C @ B @ Ordb ) @ F2 )
      = ( ! [X3: B] :
            ( comple1396247847notone @ A @ C @ Orda @ Ordb
            @ ^ [Y3: A] : ( F2 @ Y3 @ X3 ) ) ) ) ).

% monotone_fun_ord_apply
thf(fact_174_monotone__applyI,axiom,
    ! [B: $tType,A: $tType,C: $tType,Orda: A > A > $o,Ordb: B > B > $o,F4: A > B,X: C] :
      ( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ F4 )
     => ( comple1396247847notone @ ( C > A ) @ B @ ( partial_fun_ord @ A @ A @ C @ Orda ) @ Ordb
        @ ^ [F: C > A] : ( F4 @ ( F @ X ) ) ) ) ).

% monotone_applyI
thf(fact_175_monotone__case__prod__applyD,axiom,
    ! [B: $tType,C: $tType,D: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
      ( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) )
     => ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ( product_case_prod @ A @ B @ C
          @ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) ) ) ).

% monotone_case_prod_applyD
thf(fact_176_monotone__id_H,axiom,
    ! [A: $tType,Ord: A > A > $o] :
      ( comple1396247847notone @ A @ A @ Ord @ Ord
      @ ^ [X3: A] : X3 ) ).

% monotone_id'
thf(fact_177_monotone__if__fun,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,Orda: B > B > $o,Ordb: D > D > $o,F4: ( A > B ) > C > D,G4: ( A > B ) > C > D,C3: C > $o] :
      ( ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb ) @ F4 )
     => ( ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb ) @ G4 )
       => ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb )
          @ ^ [F: A > B,N: C] : ( if @ D @ ( C3 @ N ) @ ( F4 @ F @ N ) @ ( G4 @ F @ N ) ) ) ) ) ).

% monotone_if_fun
thf(fact_178_monotone__fun__apply__fun,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,Ord: C > C > $o,T3: A,G: D > B] :
      ( comple1396247847notone @ ( A > B > C ) @ ( D > C ) @ ( partial_fun_ord @ ( B > C ) @ ( B > C ) @ A @ ( partial_fun_ord @ C @ C @ B @ Ord ) ) @ ( partial_fun_ord @ C @ C @ D @ Ord )
      @ ^ [F: A > B > C,N: D] : ( F @ T3 @ ( G @ N ) ) ) ).

% monotone_fun_apply_fun
thf(fact_179_mono2mono__case__prod,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,Orda: C > C > $o,Ordb: D > D > $o,Pair: C > A > B > D,X: product_prod @ A @ B] :
      ( ! [X2: A,Y2: B] :
          ( comple1396247847notone @ C @ D @ Orda @ Ordb
          @ ^ [F: C] : ( Pair @ F @ X2 @ Y2 ) )
     => ( comple1396247847notone @ C @ D @ Orda @ Ordb
        @ ^ [F: C] : ( product_case_prod @ A @ B @ D @ ( Pair @ F ) @ X ) ) ) ).

% mono2mono_case_prod
thf(fact_180_monotone__case__prod__apply__iff,axiom,
    ! [B: $tType,C: $tType,D: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
      ( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) )
      = ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ( product_case_prod @ A @ B @ C
          @ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) ) ) ).

% monotone_case_prod_apply_iff
thf(fact_181_monotone__case__prod__applyI,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
      ( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ( product_case_prod @ A @ B @ C
          @ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) )
     => ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
        @ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) ) ) ).

% monotone_case_prod_applyI
thf(fact_182_call__mono,axiom,
    ! [B: $tType,A: $tType,Ord: B > B > $o,T3: A] :
      ( comple1396247847notone @ ( A > B ) @ B @ ( partial_fun_ord @ B @ B @ A @ Ord ) @ Ord
      @ ^ [F: A > B] : ( F @ T3 ) ) ).

% call_mono
thf(fact_183_Domainp__transfer,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o] :
      ( ( bi_total @ A @ B @ B3 )
     => ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( C > $o ) @ ( D > $o )
        @ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ C @ D @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ( domainp @ C @ A )
        @ ( domainp @ D @ B ) ) ) ).

% Domainp_transfer
thf(fact_184_partial__function__definitions_Omono2mono2,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
      ( ( partia17684980itions @ A @ Leq @ Lub )
     => ( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc ) @ Leq @ ( product_case_prod @ B @ C @ A @ F2 ) )
       => ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
         => ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
           => ( comple1396247847notone @ D @ A @ Orda @ Leq
              @ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).

% partial_function_definitions.mono2mono2
thf(fact_185_partial__function__definitions_Oconst__mono,axiom,
    ! [A: $tType,B: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ord: B > B > $o,C3: A] :
      ( ( partia17684980itions @ A @ Leq @ Lub )
     => ( comple1396247847notone @ B @ A @ Ord @ Leq
        @ ^ [F: B] : C3 ) ) ).

% partial_function_definitions.const_mono
thf(fact_186_partial__function__definitions_Omono2mono,axiom,
    ! [B: $tType,A: $tType,C: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
      ( ( partia17684980itions @ A @ Leq @ Lub )
     => ( ( comple1396247847notone @ B @ A @ Ordb @ Leq @ F2 )
       => ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
         => ( comple1396247847notone @ C @ A @ Orda @ Leq
            @ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).

% partial_function_definitions.mono2mono
thf(fact_187_Domainp_Oinducts,axiom,
    ! [B: $tType,A: $tType,R6: A > B > $o,X: A,P: A > $o] :
      ( ( domainp @ A @ B @ R6 @ X )
     => ( ! [A5: A,B5: B] :
            ( ( R6 @ A5 @ B5 )
           => ( P @ A5 ) )
       => ( P @ X ) ) ) ).

% Domainp.inducts
thf(fact_188_Domainp_ODomainI,axiom,
    ! [B: $tType,A: $tType,R6: A > B > $o,A4: A,B4: B] :
      ( ( R6 @ A4 @ B4 )
     => ( domainp @ A @ B @ R6 @ A4 ) ) ).

% Domainp.DomainI
thf(fact_189_Domainp_Osimps,axiom,
    ! [B: $tType,A: $tType] :
      ( ( domainp @ A @ B )
      = ( ^ [R: A > B > $o,A2: A] :
          ? [B2: A,C4: B] :
            ( ( A2 = B2 )
            & ( R @ B2 @ C4 ) ) ) ) ).

% Domainp.simps
thf(fact_190_Domainp_Ocases,axiom,
    ! [A: $tType,B: $tType,R6: A > B > $o,A4: A] :
      ( ( domainp @ A @ B @ R6 @ A4 )
     => ~ ! [B5: B] :
            ~ ( R6 @ A4 @ B5 ) ) ).

% Domainp.cases
thf(fact_191_DomainpE,axiom,
    ! [A: $tType,B: $tType,R6: A > B > $o,A4: A] :
      ( ( domainp @ A @ B @ R6 @ A4 )
     => ~ ! [B5: B] :
            ~ ( R6 @ A4 @ B5 ) ) ).

% DomainpE
thf(fact_192_llist_ODomainp__rel,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o] :
      ( ( domainp @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) )
      = ( coindu543516966_llist @ A @ ( domainp @ A @ B @ R3 ) ) ) ).

% llist.Domainp_rel
thf(fact_193_Domainp__refl,axiom,
    ! [B: $tType,A: $tType] :
      ( ( domainp @ A @ B )
      = ( domainp @ A @ B ) ) ).

% Domainp_refl
thf(fact_194_Domainp__iff,axiom,
    ! [B: $tType,A: $tType] :
      ( ( domainp @ A @ B )
      = ( ^ [T2: A > B > $o,X3: A] :
            ( ^ [P3: B > $o] :
              ? [X5: B] : ( P3 @ X5 )
            @ ( T2 @ X3 ) ) ) ) ).

% Domainp_iff
thf(fact_195_tllist_ODomainp__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( domainp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) )
      = ( tLList11265572tllist @ A @ B @ ( domainp @ A @ C @ R1 ) @ ( domainp @ B @ D @ R2 ) ) ) ).

% tllist.Domainp_rel
thf(fact_196_tllist_Odomain,axiom,
    ! [B: $tType,A: $tType,C: $tType,D: $tType,T: C > A > $o,DR: C > $o,Ta: D > B > $o,DR2: D > $o] :
      ( ( ( domainp @ C @ A @ T )
        = DR )
     => ( ( ( domainp @ D @ B @ Ta )
          = DR2 )
       => ( ( domainp @ ( product_prod @ ( coinductive_llist @ C ) @ D ) @ ( tLList446370796tllist @ A @ B ) @ ( tLList1832236142tllist @ C @ A @ D @ B @ T @ Ta ) )
          = ( basic_pred_prod @ ( coinductive_llist @ C ) @ D @ ( coindu543516966_llist @ C @ DR ) @ DR2 ) ) ) ) ).

% tllist.domain
thf(fact_197_prod_ODomainp__rel,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
      ( ( domainp @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) )
      = ( basic_pred_prod @ A @ B @ ( domainp @ A @ C @ R1 ) @ ( domainp @ B @ D @ R2 ) ) ) ).

% prod.Domainp_rel
thf(fact_198_fun_ODomainp__rel,axiom,
    ! [C: $tType,B: $tType,A: $tType,R3: A > B > $o] :
      ( ( domainp @ ( C > A ) @ ( C > B )
        @ ( bNF_rel_fun @ C @ C @ A @ B
          @ ^ [Y: C,Z: C] : Y = Z
          @ R3 ) )
      = ( basic_pred_fun @ C @ A
        @ ^ [Uu: C] : $true
        @ ( domainp @ A @ B @ R3 ) ) ) ).

% fun.Domainp_rel
thf(fact_199_pcr__Domainp__total,axiom,
    ! [A: $tType,B: $tType,C: $tType,B3: A > B > $o,A3: C > A > $o,P: C > $o] :
      ( ( left_total @ A @ B @ B3 )
     => ( ( ( domainp @ C @ A @ A3 )
          = P )
       => ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
          = P ) ) ) ).

% pcr_Domainp_total
thf(fact_200_pcr__Domainp__par__left__total,axiom,
    ! [A: $tType,B: $tType,C: $tType,B3: A > B > $o,P: A > $o,A3: C > A > $o,P2: C > $o] :
      ( ( ( domainp @ A @ B @ B3 )
        = P )
     => ( ( left_total @ C @ A @ A3 )
       => ( ( bNF_rel_fun @ C @ A @ $o @ $o @ A3
            @ ^ [Y: $o,Z: $o] : Y = Z
            @ P2
            @ P )
         => ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
            = P2 ) ) ) ) ).

% pcr_Domainp_par_left_total
thf(fact_201_if__mono,axiom,
    ! [B: $tType,A: $tType,Orda: A > A > $o,Ordb: B > B > $o,F4: A > B,G4: A > B,C3: $o] :
      ( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ F4 )
     => ( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ G4 )
       => ( comple1396247847notone @ A @ B @ Orda @ Ordb
          @ ^ [F: A] : ( if @ B @ C3 @ ( F4 @ F ) @ ( G4 @ F ) ) ) ) ) ).

% if_mono
thf(fact_202_let__mono,axiom,
    ! [A: $tType,C: $tType,B: $tType,Orda: B > B > $o,Ordb: C > C > $o,B4: B > A > C,T3: A] :
      ( ! [X2: A] :
          ( comple1396247847notone @ B @ C @ Orda @ Ordb
          @ ^ [F: B] : ( B4 @ F @ X2 ) )
     => ( comple1396247847notone @ B @ C @ Orda @ Ordb
        @ ^ [F: B] : ( B4 @ F @ T3 ) ) ) ).

% let_mono
thf(fact_203_Domainp__forall__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( transfer_bforall @ A @ ( domainp @ A @ B @ A3 ) )
        @ ( transfer_forall @ B ) ) ) ).

% Domainp_forall_transfer
thf(fact_204_right__total__relcompp__transfer,axiom,
    ! [C: $tType,A: $tType,E: $tType,F3: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o,C2: E > F3 > $o] :
      ( ( right_total @ A @ B @ B3 )
     => ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( ( A > E > $o ) > C > E > $o ) @ ( ( B > F3 > $o ) > D > F3 > $o )
        @ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ ( A > E > $o ) @ ( B > F3 > $o ) @ ( C > E > $o ) @ ( D > F3 > $o )
          @ ( bNF_rel_fun @ A @ B @ ( E > $o ) @ ( F3 > $o ) @ B3
            @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
              @ ^ [Y: $o,Z: $o] : Y = Z ) )
          @ ( bNF_rel_fun @ C @ D @ ( E > $o ) @ ( F3 > $o ) @ A3
            @ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
              @ ^ [Y: $o,Z: $o] : Y = Z ) ) )
        @ ^ [R5: C > A > $o,S5: A > E > $o,X3: C,Z2: E] :
          ? [Y3: A] :
            ( ( member @ A @ Y3 @ ( collect @ A @ ( domainp @ A @ B @ B3 ) ) )
            & ( R5 @ X3 @ Y3 )
            & ( S5 @ Y3 @ Z2 ) )
        @ ( relcompp @ D @ B @ F3 ) ) ) ).

% right_total_relcompp_transfer
thf(fact_205_right__total__Domainp__transfer,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o] :
      ( ( right_total @ A @ B @ B3 )
     => ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( C > $o ) @ ( D > $o )
        @ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
            @ ^ [Y: $o,Z: $o] : Y = Z ) )
        @ ( bNF_rel_fun @ C @ D @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [T2: C > A > $o,X3: C] :
          ? [Y3: A] :
            ( ( member @ A @ Y3 @ ( collect @ A @ ( domainp @ A @ B @ B3 ) ) )
            & ( T2 @ X3 @ Y3 ) )
        @ ( domainp @ D @ B ) ) ) ).

% right_total_Domainp_transfer
thf(fact_206_bex__reg,axiom,
    ! [A: $tType,R3: set @ A,P: A > $o,Q: A > $o] :
      ( ! [X2: A] :
          ( ( member @ A @ X2 @ R3 )
         => ( ( P @ X2 )
           => ( Q @ X2 ) ) )
     => ( ? [X6: A] :
            ( ( member @ A @ X6 @ R3 )
            & ( P @ X6 ) )
       => ? [X2: A] :
            ( ( member @ A @ X2 @ R3 )
            & ( Q @ X2 ) ) ) ) ).

% bex_reg
thf(fact_207_right__total__Ex__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( right_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ( bex @ A @ ( collect @ A @ ( domainp @ A @ B @ A3 ) ) )
        @ ^ [P3: B > $o] :
          ? [X5: B] : ( P3 @ X5 ) ) ) ).

% right_total_Ex_transfer
thf(fact_208_lfp_Omono2mono2,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
          ( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc ) @ ( ord_less_eq @ A ) @ ( product_case_prod @ B @ C @ A @ F2 ) )
         => ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
           => ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
             => ( comple1396247847notone @ D @ A @ Orda @ ( ord_less_eq @ A )
                @ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).

% lfp.mono2mono2
thf(fact_209_bex__reg__left,axiom,
    ! [A: $tType,R3: set @ A,Q: A > $o,P: A > $o] :
      ( ! [X2: A] :
          ( ( member @ A @ X2 @ R3 )
         => ( ( Q @ X2 )
           => ( P @ X2 ) ) )
     => ( ? [X6: A] :
            ( ( member @ A @ X6 @ R3 )
            & ( Q @ X6 ) )
       => ? [X14: A] : ( P @ X14 ) ) ) ).

% bex_reg_left
thf(fact_210_pcr__Domainp,axiom,
    ! [B: $tType,A: $tType,C: $tType,B3: A > B > $o,P: A > $o,A3: C > A > $o] :
      ( ( ( domainp @ A @ B @ B3 )
        = P )
     => ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
        = ( ^ [X3: C] :
            ? [Y3: A] :
              ( ( A3 @ X3 @ Y3 )
              & ( P @ Y3 ) ) ) ) ) ).

% pcr_Domainp
thf(fact_211_OO__def,axiom,
    ! [B: $tType,C: $tType,A: $tType] :
      ( ( relcompp @ A @ C @ B )
      = ( ^ [R5: A > C > $o,S5: C > B > $o,X3: A,Z2: B] :
          ? [Y3: C] :
            ( ( R5 @ X3 @ Y3 )
            & ( S5 @ Y3 @ Z2 ) ) ) ) ).

% OO_def
thf(fact_212_Collect__case__prod__mono,axiom,
    ! [B: $tType,A: $tType,A3: A > B > $o,B3: A > B > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ A3 @ B3 )
     => ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ A3 ) ) @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ B3 ) ) ) ) ).

% Collect_case_prod_mono
thf(fact_213_prod_Orel__mono,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R1a: A > C > $o,R2: B > D > $o,R2a: B > D > $o] :
      ( ( ord_less_eq @ ( A > C > $o ) @ R1 @ R1a )
     => ( ( ord_less_eq @ ( B > D > $o ) @ R2 @ R2a )
       => ( ord_less_eq @ ( ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1a @ R2a ) ) ) ) ).

% prod.rel_mono
thf(fact_214_llist_Orel__mono,axiom,
    ! [B: $tType,A: $tType,R3: A > B > $o,Ra: A > B > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ R3 @ Ra )
     => ( ord_less_eq @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ ( coindu1486289336t_all2 @ A @ B @ Ra ) ) ) ).

% llist.rel_mono
thf(fact_215_tllist_Orel__mono,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R1a: A > C > $o,R2: B > D > $o,R2a: B > D > $o] :
      ( ( ord_less_eq @ ( A > C > $o ) @ R1 @ R1a )
     => ( ( ord_less_eq @ ( B > D > $o ) @ R2 @ R2a )
       => ( ord_less_eq @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1a @ R2a ) ) ) ) ).

% tllist.rel_mono
thf(fact_216_wlog__linorder__le,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,B4: A,A4: A] :
          ( ! [A5: A,B5: A] :
              ( ( ord_less_eq @ A @ A5 @ B5 )
             => ( P @ A5 @ B5 ) )
         => ( ( ( P @ B4 @ A4 )
             => ( P @ A4 @ B4 ) )
           => ( P @ A4 @ B4 ) ) ) ) ).

% wlog_linorder_le
thf(fact_217_reflp__eq,axiom,
    ! [A: $tType] :
      ( ( reflp @ A )
      = ( ord_less_eq @ ( A > A > $o )
        @ ^ [Y: A,Z: A] : Y = Z ) ) ).

% reflp_eq
thf(fact_218_reflp__ge__eq,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ( reflp @ A @ R3 )
     => ( ord_less_eq @ ( A > A > $o )
        @ ^ [Y: A,Z: A] : Y = Z
        @ R3 ) ) ).

% reflp_ge_eq
thf(fact_219_leq__OOI,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ( R3
        = ( ^ [Y: A,Z: A] : Y = Z ) )
     => ( ord_less_eq @ ( A > A > $o ) @ R3 @ ( relcompp @ A @ A @ A @ R3 @ R3 ) ) ) ).

% leq_OOI
thf(fact_220_relcompp__mono,axiom,
    ! [A: $tType,C: $tType,B: $tType,R7: A > B > $o,R6: A > B > $o,S6: B > C > $o,S4: B > C > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ R7 @ R6 )
     => ( ( ord_less_eq @ ( B > C > $o ) @ S6 @ S4 )
       => ( ord_less_eq @ ( A > C > $o ) @ ( relcompp @ A @ B @ C @ R7 @ S6 ) @ ( relcompp @ A @ B @ C @ R6 @ S4 ) ) ) ) ).

% relcompp_mono
thf(fact_221_fun__mono,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,C2: A > B > $o,A3: A > B > $o,B3: C > D > $o,D2: C > D > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ C2 @ A3 )
     => ( ( ord_less_eq @ ( C > D > $o ) @ B3 @ D2 )
       => ( ord_less_eq @ ( ( A > C ) > ( B > D ) > $o ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ A @ B @ C @ D @ C2 @ D2 ) ) ) ) ).

% fun_mono
thf(fact_222_fun_Orel__mono,axiom,
    ! [D: $tType,B: $tType,A: $tType,R3: A > B > $o,Ra: A > B > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ R3 @ Ra )
     => ( ord_less_eq @ ( ( D > A ) > ( D > B ) > $o )
        @ ( bNF_rel_fun @ D @ D @ A @ B
          @ ^ [Y: D,Z: D] : Y = Z
          @ R3 )
        @ ( bNF_rel_fun @ D @ D @ A @ B
          @ ^ [Y: D,Z: D] : Y = Z
          @ Ra ) ) ) ).

% fun.rel_mono
thf(fact_223_monotone__if__bot,axiom,
    ! [B: $tType,A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [Bound: A,Ord: B > B > $o,F2: A > B,Bot: B] :
          ( ! [X2: A,Y2: A] :
              ( ( ord_less_eq @ A @ X2 @ Y2 )
             => ( ~ ( ord_less_eq @ A @ X2 @ Bound )
               => ( Ord @ ( F2 @ X2 ) @ ( F2 @ Y2 ) ) ) )
         => ( ! [X2: A] :
                ( ~ ( ord_less_eq @ A @ X2 @ Bound )
               => ( Ord @ Bot @ ( F2 @ X2 ) ) )
           => ( ( Ord @ Bot @ Bot )
             => ( comple1396247847notone @ A @ B @ ( ord_less_eq @ A ) @ Ord
                @ ^ [X3: A] : ( if @ B @ ( ord_less_eq @ A @ X3 @ Bound ) @ Bot @ ( F2 @ X3 ) ) ) ) ) ) ) ).

% monotone_if_bot
thf(fact_224_monotone__const,axiom,
    ! [A: $tType,B: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [Ord: B > B > $o,C3: A] :
          ( comple1396247847notone @ B @ A @ Ord @ ( ord_less_eq @ A )
          @ ^ [Uu: B] : C3 ) ) ).

% monotone_const
thf(fact_225_gfp_Omonotone__if__bot,axiom,
    ! [B: $tType,A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Bound: A,G: A > B,Bot: B,F2: A > B,Ord: B > B > $o] :
          ( ! [X2: A] :
              ( ( ( ord_less_eq @ A @ Bound @ X2 )
               => ( ( G @ X2 )
                  = Bot ) )
              & ( ~ ( ord_less_eq @ A @ Bound @ X2 )
               => ( ( G @ X2 )
                  = ( F2 @ X2 ) ) ) )
         => ( ! [X2: A,Y2: A] :
                ( ( ord_less_eq @ A @ Y2 @ X2 )
               => ( ~ ( ord_less_eq @ A @ Bound @ X2 )
                 => ( Ord @ ( F2 @ X2 ) @ ( F2 @ Y2 ) ) ) )
           => ( ! [X2: A] :
                  ( ~ ( ord_less_eq @ A @ Bound @ X2 )
                 => ( Ord @ Bot @ ( F2 @ X2 ) ) )
             => ( ( Ord @ Bot @ Bot )
               => ( comple1396247847notone @ A @ B
                  @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
                  @ Ord
                  @ G ) ) ) ) ) ) ).

% gfp.monotone_if_bot
thf(fact_226_lfp_Oconst__mono,axiom,
    ! [A: $tType,B: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ord: B > B > $o,C3: A] :
          ( comple1396247847notone @ B @ A @ Ord @ ( ord_less_eq @ A )
          @ ^ [F: B] : C3 ) ) ).

% lfp.const_mono
thf(fact_227_gfp_Oconst__mono,axiom,
    ! [A: $tType,B: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ord: B > B > $o,C3: A] :
          ( comple1396247847notone @ B @ A @ Ord
          @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
          @ ^ [F: B] : C3 ) ) ).

% gfp.const_mono
thf(fact_228_lfp_Omono2mono,axiom,
    ! [B: $tType,A: $tType,C: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
          ( ( comple1396247847notone @ B @ A @ Ordb @ ( ord_less_eq @ A ) @ F2 )
         => ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
           => ( comple1396247847notone @ C @ A @ Orda @ ( ord_less_eq @ A )
              @ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).

% lfp.mono2mono
thf(fact_229_gfp_Omono2mono,axiom,
    ! [B: $tType,A: $tType,C: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
          ( ( comple1396247847notone @ B @ A @ Ordb
            @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
            @ F2 )
         => ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
           => ( comple1396247847notone @ C @ A @ Orda
              @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
              @ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).

% gfp.mono2mono
thf(fact_230_Ex__transfer,axiom,
    ! [A: $tType,B: $tType,A3: A > B > $o] :
      ( ( bi_total @ A @ B @ A3 )
     => ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
          @ ^ [Y: $o,Z: $o] : Y = Z )
        @ ^ [Y: $o,Z: $o] : Y = Z
        @ ^ [P3: A > $o] :
          ? [X5: A] : ( P3 @ X5 )
        @ ^ [P3: B > $o] :
          ? [X5: B] : ( P3 @ X5 ) ) ) ).

% Ex_transfer
thf(fact_231_pos__fun__distr,axiom,
    ! [E: $tType,C: $tType,A: $tType,B: $tType,D: $tType,F3: $tType,R3: A > E > $o,S2: B > F3 > $o,R8: E > C > $o,S7: F3 > D > $o] : ( ord_less_eq @ ( ( A > B ) > ( C > D ) > $o ) @ ( relcompp @ ( A > B ) @ ( E > F3 ) @ ( C > D ) @ ( bNF_rel_fun @ A @ E @ B @ F3 @ R3 @ S2 ) @ ( bNF_rel_fun @ E @ C @ F3 @ D @ R8 @ S7 ) ) @ ( bNF_rel_fun @ A @ C @ B @ D @ ( relcompp @ A @ E @ C @ R3 @ R8 ) @ ( relcompp @ B @ F3 @ D @ S2 @ S7 ) ) ) ).

% pos_fun_distr
thf(fact_232_gfp_Omono2mono2,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
          ( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc )
            @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
            @ ( product_case_prod @ B @ C @ A @ F2 ) )
         => ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
           => ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
             => ( comple1396247847notone @ D @ A @ Orda
                @ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
                @ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).

% gfp.mono2mono2
thf(fact_233_Bex__def__raw,axiom,
    ! [A: $tType] :
      ( ( bex @ A )
      = ( ^ [A6: set @ A,P4: A > $o] :
          ? [X3: A] :
            ( ( member @ A @ X3 @ A6 )
            & ( P4 @ X3 ) ) ) ) ).

% Bex_def_raw
thf(fact_234_rel__pred__comp__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( rel_pred_comp @ A @ B )
      = ( ^ [R5: A > B > $o,P4: B > $o,X3: A] :
          ? [Y3: B] :
            ( ( R5 @ X3 @ Y3 )
            & ( P4 @ Y3 ) ) ) ) ).

% rel_pred_comp_def
thf(fact_235_pred__subset__eq,axiom,
    ! [A: $tType,R3: set @ A,S2: set @ A] :
      ( ( ord_less_eq @ ( A > $o )
        @ ^ [X3: A] : ( member @ A @ X3 @ R3 )
        @ ^ [X3: A] : ( member @ A @ X3 @ S2 ) )
      = ( ord_less_eq @ ( set @ A ) @ R3 @ S2 ) ) ).

% pred_subset_eq
thf(fact_236_eq__subset,axiom,
    ! [A: $tType,P: A > A > $o] :
      ( ord_less_eq @ ( A > A > $o )
      @ ^ [Y: A,Z: A] : Y = Z
      @ ^ [A2: A,B2: A] :
          ( ( P @ A2 @ B2 )
          | ( A2 = B2 ) ) ) ).

% eq_subset
thf(fact_237_predicate2D__conj,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,R3: $o,X: A,Y5: B] :
      ( ( ( ord_less_eq @ ( A > B > $o ) @ P @ Q )
        & R3 )
     => ( R3
        & ( ( P @ X @ Y5 )
         => ( Q @ X @ Y5 ) ) ) ) ).

% predicate2D_conj
thf(fact_238_refl__ge__eq,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ! [X2: A] : ( R3 @ X2 @ X2 )
     => ( ord_less_eq @ ( A > A > $o )
        @ ^ [Y: A,Z: A] : Y = Z
        @ R3 ) ) ).

% refl_ge_eq
thf(fact_239_ge__eq__refl,axiom,
    ! [A: $tType,R3: A > A > $o,X: A] :
      ( ( ord_less_eq @ ( A > A > $o )
        @ ^ [Y: A,Z: A] : Y = Z
        @ R3 )
     => ( R3 @ X @ X ) ) ).

% ge_eq_refl
thf(fact_240_mono__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ D @ ( type2 @ D ) )
        & ( order @ C @ ( type2 @ C ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A > B > $o,B3: C > D > $o] :
          ( ( bi_total @ A @ B @ A3 )
         => ( ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
              @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
                @ ^ [Y: $o,Z: $o] : Y = Z )
              @ ( ord_less_eq @ A )
              @ ( ord_less_eq @ B ) )
           => ( ( bNF_rel_fun @ C @ D @ ( C > $o ) @ ( D > $o ) @ B3
                @ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
                  @ ^ [Y: $o,Z: $o] : Y = Z )
                @ ( ord_less_eq @ C )
                @ ( ord_less_eq @ D ) )
             => ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
                @ ^ [Y: $o,Z: $o] : Y = Z
                @ ( order_mono @ A @ C )
                @ ( order_mono @ B @ D ) ) ) ) ) ) ).

% mono_transfer
thf(fact_241_less__eq__set__def,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A6: set @ A,B7: set @ A] :
            ( ord_less_eq @ ( A > $o )
            @ ^ [X3: A] : ( member @ A @ X3 @ A6 )
            @ ^ [X3: A] : ( member @ A @ X3 @ B7 ) ) ) ) ).

% less_eq_set_def
thf(fact_242_rtranclp_Omono,axiom,
    ! [A: $tType,R6: A > A > $o] :
      ( order_mono @ ( A > A > $o ) @ ( A > A > $o )
      @ ^ [P5: A > A > $o,X1: A,X22: A] :
          ( ? [A2: A] :
              ( ( X1 = A2 )
              & ( X22 = A2 ) )
          | ? [A2: A,B2: A,C4: A] :
              ( ( X1 = A2 )
              & ( X22 = C4 )
              & ( P5 @ A2 @ B2 )
              & ( R6 @ B2 @ C4 ) ) ) ) ).

% rtranclp.mono
thf(fact_243_tranclp_Omono,axiom,
    ! [A: $tType,R6: A > A > $o] :
      ( order_mono @ ( A > A > $o ) @ ( A > A > $o )
      @ ^ [P5: A > A > $o,X1: A,X22: A] :
          ( ? [A2: A,B2: A] :
              ( ( X1 = A2 )
              & ( X22 = B2 )
              & ( R6 @ A2 @ B2 ) )
          | ? [A2: A,B2: A,C4: A] :
              ( ( X1 = A2 )
              & ( X22 = C4 )
              & ( P5 @ A2 @ B2 )
              & ( R6 @ B2 @ C4 ) ) ) ) ).

% tranclp.mono
thf(fact_244_mono__compose,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType] :
      ( ( ( order @ A @ ( type2 @ A ) )
        & ( order @ C @ ( type2 @ C ) ) )
     => ! [Q: A > B > C,F2: D > B] :
          ( ( order_mono @ A @ ( B > C ) @ Q )
         => ( order_mono @ A @ ( D > C )
            @ ^ [I2: A,X3: D] : ( Q @ I2 @ ( F2 @ X3 ) ) ) ) ) ).

% mono_compose
thf(fact_245_conj__subset__def,axiom,
    ! [A: $tType,A3: set @ A,P: A > $o,Q: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ A3
        @ ( collect @ A
          @ ^ [X3: A] :
              ( ( P @ X3 )
              & ( Q @ X3 ) ) ) )
      = ( ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ P ) )
        & ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ Q ) ) ) ) ).

% conj_subset_def
thf(fact_246_DEADID_Orel__reflp,axiom,
    ! [A: $tType] :
      ( reflp @ A
      @ ^ [Y: A,Z: A] : Y = Z ) ).

% DEADID.rel_reflp
thf(fact_247_subset__Collect__iff,axiom,
    ! [A: $tType,B3: set @ A,A3: set @ A,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B3 @ A3 )
     => ( ( ord_less_eq @ ( set @ A ) @ B3
          @ ( collect @ A
            @ ^ [X3: A] :
                ( ( member @ A @ X3 @ A3 )
                & ( P @ X3 ) ) ) )
        = ( ! [X3: A] :
              ( ( member @ A @ X3 @ B3 )
             => ( P @ X3 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_248_subset__CollectI,axiom,
    ! [A: $tType,B3: set @ A,A3: set @ A,Q: A > $o,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B3 @ A3 )
     => ( ! [X2: A] :
            ( ( member @ A @ X2 @ B3 )
           => ( ( Q @ X2 )
             => ( P @ X2 ) ) )
       => ( ord_less_eq @ ( set @ A )
          @ ( collect @ A
            @ ^ [X3: A] :
                ( ( member @ A @ X3 @ B3 )
                & ( Q @ X3 ) ) )
          @ ( collect @ A
            @ ^ [X3: A] :
                ( ( member @ A @ X3 @ A3 )
                & ( P @ X3 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_249_rel__fun__iff__geq__image2p,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType] :
      ( ( bNF_rel_fun @ A @ B @ C @ D )
      = ( ^ [R5: A > B > $o,S5: C > D > $o,F: A > C,G3: B > D] : ( ord_less_eq @ ( C > D > $o ) @ ( bNF_Greatest_image2p @ A @ C @ B @ D @ F @ G3 @ R5 ) @ S5 ) ) ) ).

% rel_fun_iff_geq_image2p
thf(fact_250_prop__restrict,axiom,
    ! [A: $tType,X: A,Z3: set @ A,X4: set @ A,P: A > $o] :
      ( ( member @ A @ X @ Z3 )
     => ( ( ord_less_eq @ ( set @ A ) @ Z3
          @ ( collect @ A
            @ ^ [X3: A] :
                ( ( member @ A @ X3 @ X4 )
                & ( P @ X3 ) ) ) )
       => ( P @ X ) ) ) ).

% prop_restrict
thf(fact_251_rel__fun__image2p,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R3: A > B > $o,F2: A > C,G: B > D] : ( bNF_rel_fun @ A @ B @ C @ D @ R3 @ ( bNF_Greatest_image2p @ A @ C @ B @ D @ F2 @ G @ R3 ) @ F2 @ G ) ).

% rel_fun_image2p
thf(fact_252_image2p__def,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType] :
      ( ( bNF_Greatest_image2p @ C @ A @ D @ B )
      = ( ^ [F: C > A,G3: D > B,R5: C > D > $o,X3: A,Y3: B] :
          ? [X7: C,Y6: D] :
            ( ( R5 @ X7 @ Y6 )
            & ( ( F @ X7 )
              = X3 )
            & ( ( G3 @ Y6 )
              = Y3 ) ) ) ) ).

% image2p_def
thf(fact_253_nchotomy__relcomppE,axiom,
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F2: B > A,R6: C > A > $o,S4: A > D > $o,A4: C,C3: D] :
      ( ! [Y2: A] :
        ? [X6: B] :
          ( Y2
          = ( F2 @ X6 ) )
     => ( ( relcompp @ C @ A @ D @ R6 @ S4 @ A4 @ C3 )
       => ~ ! [B5: B] :
              ( ( R6 @ A4 @ ( F2 @ B5 ) )
             => ~ ( S4 @ ( F2 @ B5 ) @ C3 ) ) ) ) ).

% nchotomy_relcomppE
thf(fact_254_Collect__restrict,axiom,
    ! [A: $tType,X4: set @ A,P: A > $o] :
      ( ord_less_eq @ ( set @ A )
      @ ( collect @ A
        @ ^ [X3: A] :
            ( ( member @ A @ X3 @ X4 )
            & ( P @ X3 ) ) )
      @ X4 ) ).

% Collect_restrict
thf(fact_255_Domainp__prod__fun__eq,axiom,
    ! [C: $tType,B: $tType,A: $tType,T: B > C > $o] :
      ( ( domainp @ ( A > B ) @ ( A > C )
        @ ( bNF_rel_fun @ A @ A @ B @ C
          @ ^ [Y: A,Z: A] : Y = Z
          @ T ) )
      = ( ^ [F: A > B] :
          ! [X3: A] : ( domainp @ B @ C @ T @ ( F @ X3 ) ) ) ) ).

% Domainp_prod_fun_eq

%----Type constructors (10)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( comple187826305attice @ A8 @ ( type2 @ A8 ) )
     => ( comple187826305attice @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( preorder @ A8 @ ( type2 @ A8 ) )
     => ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( order @ A8 @ ( type2 @ A8 ) )
     => ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_1,axiom,
    ! [A7: $tType] : ( comple187826305attice @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_2,axiom,
    ! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_3,axiom,
    ! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_4,axiom,
    comple187826305attice @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_5,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_6,axiom,
    order @ $o @ ( type2 @ $o ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y5: A] :
      ( ( if @ A @ $false @ X @ Y5 )
      = Y5 ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y5: A] :
      ( ( if @ A @ $true @ X @ Y5 )
      = X ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( bNF_rel_fun @ ( a > b > $o ) @ ( a > b > $o ) @ ( ( c > d > $o ) > ( product_prod @ ( coinductive_llist @ a ) @ c ) > ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( c > d > $o ) > ( tLList446370796tllist @ a @ c ) > ( tLList446370796tllist @ b @ d ) > $o )
    @ ^ [Y: a > b > $o,Z: a > b > $o] : Y = Z
    @ ( bNF_rel_fun @ ( c > d > $o ) @ ( c > d > $o ) @ ( ( product_prod @ ( coinductive_llist @ a ) @ c ) > ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( tLList446370796tllist @ a @ c ) > ( tLList446370796tllist @ b @ d ) > $o )
      @ ^ [Y: c > d > $o,Z: c > d > $o] : Y = Z
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ a ) @ c ) @ ( tLList446370796tllist @ a @ c ) @ ( ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( tLList446370796tllist @ b @ d ) > $o ) @ ( tLList47617868tllist @ a @ c )
        @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ b ) @ d ) @ ( tLList446370796tllist @ b @ d ) @ $o @ $o @ ( tLList47617868tllist @ b @ d )
          @ ^ [Y: $o,Z: $o] : Y = Z ) ) )
    @ ^ [P4: a > b > $o,Q2: c > d > $o] :
        ( product_case_prod @ ( coinductive_llist @ a ) @ c @ ( ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o )
        @ ^ [Xs: coinductive_llist @ a,B2: c] :
            ( product_case_prod @ ( coinductive_llist @ b ) @ d @ $o
            @ ^ [Ys: coinductive_llist @ b,B8: d] :
                ( ( coindu1486289336t_all2 @ a @ b @ P4 @ Xs @ Ys )
                & ( ( coinductive_lfinite @ a @ Xs )
                 => ( Q2 @ B2 @ B8 ) ) ) ) )
    @ ( tLList1380991092t_all2 @ a @ b @ c @ d ) ) ).

%------------------------------------------------------------------------------